Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Refactor the UCD file parsers | Ryo Nihei | 2021-11-23 | 3 | -155/+202 |
| | |||||
* | Update CHANGELOG | Ryo Nihei | 2021-10-09 | 1 | -0/+12 |
| | |||||
* | Update godoc | Ryo Nihei | 2021-10-05 | 2 | -8/+16 |
| | |||||
* | Remove the ModeName and KindName fields from the driver.Token struct | Ryo Nihei | 2021-10-03 | 5 | -270/+313 |
| | |||||
* | Format the source code of a lexer maleeni-go generates | Ryo Nihei | 2021-10-02 | 1 | -40/+140 |
| | |||||
* | Disallow upper cases in an identifier | Ryo Nihei | 2021-09-24 | 4 | -99/+116 |
| | |||||
* | Remove --debug option from compile command | Ryo Nihei | 2021-09-23 | 3 | -107/+2 |
| | |||||
* | Keep the order of AST nodes constant | Ryo Nihei | 2021-09-22 | 4 | -20/+50 |
| | |||||
* | Add name field to the lexical specification | Ryo Nihei | 2021-09-18 | 8 | -23/+97 |
| | |||||
* | Generate constant values representing mode IDs, mode names, kind IDs, and ↵ | Ryo Nihei | 2021-09-18 | 4 | -106/+515 |
| | | | | kind names | ||||
* | Update CHANGELOG | Ryo Nihei | 2021-09-14 | 1 | -0/+7 |
| | |||||
* | Add maleeni-go command | Ryo Nihei | 2021-09-14 | 4 | -37/+668 |
| | | | | maleeni-go generates a lexer that recognizes a specific lexical specification. | ||||
* | Define a lexical specification interface | Ryo Nihei | 2021-09-11 | 6 | -353/+370 |
| | |||||
* | Remove --debug option from the lex command | Ryo Nihei | 2021-09-08 | 2 | -63/+1 |
| | |||||
* | Update CHANGELOG | Ryo Nihei | 2021-08-22 | 1 | -0/+7 |
| | |||||
* | Add lexeme positions to tokens | Ryo Nihei | 2021-08-07 | 3 | -39/+226 |
| | | | | close #1 | ||||
* | Use Go 1.16 | Ryo Nihei | 2021-08-07 | 2 | -2/+2 |
| | |||||
* | Update CHANGELOG | Ryo Nihei | 2021-08-02 | 1 | -0/+7 |
| | |||||
* | Change APIs | Ryo Nihei | 2021-08-01 | 11 | -231/+289 |
| | | | | | | | | | | | | | | | | | | | | | | Change fields of tokens, results of lexical analysis, as follows: - Rename: mode -> mode_id - Rename: kind_id -> mode_kind_id - Add: kind_id The kind ID is unique across all modes, but the mode kind ID is unique only within a mode. Change fields of a transition table as follows: - Rename: initial_mode -> initial_mode_id - Rename: modes -> mode_names - Rename: kinds -> kind_names - Rename: specs[].kinds -> specs[].kind_names - Rename: specs[].dfa.initial_state -> specs[].dfa.initial_state_id Change public types defined in the spec package as follows: - Rename: LexModeNum -> LexModeID - Rename: LexKind -> LexKindName - Add: LexKindID - Add: StateID | ||||
* | Add unique kind IDs to tokens | Ryo Nihei | 2021-08-01 | 5 | -178/+239 |
| | |||||
* | Fix CHANGELOG | Ryo Nihei | 2021-07-29 | 1 | -1/+1 |
| | |||||
* | Update CHANGELOG | Ryo Nihei | 2021-07-22 | 1 | -0/+7 |
| | |||||
* | Add CHANGELOG | Ryo Nihei | 2021-07-22 | 1 | -0/+17 |
| | |||||
* | Add spec.EscapePattern function | Ryo Nihei | 2021-07-22 | 2 | -0/+49 |
| | |||||
* | Support passive mode transition | Ryo Nihei | 2021-06-10 | 3 | -25/+140 |
| | |||||
* | Update README | Ryo Nihei | 2021-06-08 | 1 | -1/+1 |
| | |||||
* | Update README | Ryo Nihei | 2021-06-04 | 1 | -2/+30 |
| | |||||
* | Add status badge | Ryo Nihei | 2021-06-03 | 1 | -0/+2 |
| | |||||
* | Set up CI | Ryo Nihei | 2021-06-03 | 1 | -0/+22 |
| | |||||
* | Update README | Ryo Nihei | 2021-06-02 | 1 | -0/+13 |
| | |||||
* | Update README | Ryo Nihei | 2021-05-28 | 1 | -0/+59 |
| | |||||
* | Add example lexical specification | Ryo Nihei | 2021-05-27 | 3 | -0/+604 |
| | |||||
* | Allow duplicate names between fragments and non-fragments | Ryo Nihei | 2021-05-27 | 3 | -11/+123 |
| | |||||
* | Add fragment expression | Ryo Nihei | 2021-05-25 | 11 | -61/+540 |
| | | | | A fragment entry is defined by an entry whose `fragment` field is `true`, and is referenced by a fragment expression (`\f{...}`). | ||||
* | Fix the initial state number | Ryo Nihei | 2021-05-19 | 1 | -1/+5 |
| | | | | Since 0 represents an invalid value in a transition table, assign a number greater than or equal to 1 to states. | ||||
* | Remove the shorthand for --compression-level option from the compile command | Ryo Nihei | 2021-05-13 | 1 | -1/+1 |
| | |||||
* | Rename fields of driver.Token | Ryo Nihei | 2021-05-13 | 3 | -26/+25 |
| | |||||
* | Use go fmt instead of gofmt | Ryo Nihei | 2021-05-12 | 1 | -1/+1 |
| | |||||
* | Add --compression-level option to compile command | Ryo Nihei | 2021-05-11 | 6 | -45/+119 |
| | | | | --compression-level specifies a compression level. The default value is 2. | ||||
* | Fix a text representation of an error token | Ryo Nihei | 2021-05-11 | 2 | -22/+51 |
| | | | | This commit fixes a bug that caused the second and subsequent characters of the text representation of an error token to be missing. | ||||
* | Update README and godoc | Ryo Nihei | 2021-05-10 | 2 | -8/+227 |
| | |||||
* | Change package structure | Ryo Nihei | 2021-05-08 | 6 | -7/+5 |
| | | | | The executable can be installed using `go install ./cmd/maleeni`. | ||||
* | Add --break-on-error option to lex command | Ryo Nihei | 2021-05-08 | 2 | -3/+9 |
| | | | | As you use --break-on-error option, break lexical analysis with exit status 1 immediately when an error token appears. | ||||
* | Add CLI options | Ryo Nihei | 2021-05-08 | 4 | -56/+117 |
| | |||||
* | Change type of acceping_states to slice | Ryo Nihei | 2021-05-07 | 3 | -5/+9 |
| | |||||
* | Add transition table compressor | Ryo Nihei | 2021-05-07 | 6 | -18/+431 |
| | |||||
* | Remove Peek* functions | Ryo Nihei | 2021-05-05 | 2 | -86/+0 |
| | |||||
* | Improve performance of the symbolPositionSet | Ryo Nihei | 2021-05-04 | 4 | -63/+98 |
| | | | | | | | | | | When using a map to represent a set, performance degrades due to the increased number of calls of runtime.mapassign. Especially when the number of symbols is large, as in compiling a pattern that contains character properties like \p{Letter}, adding elements to the set alone may take several tens of seconds of CPU time. Therefore, this commit solves this problem by changing the representation of the set from map to array. | ||||
* | Add lex mode | Ryo Nihei | 2021-05-04 | 4 | -211/+504 |
| | | | | | | | | | | lex mode is a feature that separates transition tables per each mode. The lexer starts from an initial state indicated by `initial_state` field and transitions between modes according to `push` and `pop` fields. The initial state will always be `default`. Currently, maleeni doesn't provide the ability to change the initial state. You can specify the modes of each lex entry using `modes` field. When the mode isn't indicated explicitly, the entries have `default` mode. | ||||
* | Generate an invalid token from incompleted input. | Ryo Nihei | 2021-05-02 | 1 | -0/+5 |
| | | | | When the lexer's buffer has unaccepted data and reads the EOF, the lexer treats the buffered data as an invalid token. |