much more efficient rod file generation
This commit is contained in:
parent
0914ba8980
commit
4de84024e5
18 changed files with 611 additions and 557 deletions
36
todo.txt
36
todo.txt
|
|
@ -9,6 +9,7 @@ Version 0.8.14
|
|||
- optional indentation for 'case' statement
|
||||
- document & test splicing; don't forget to test negative indexes
|
||||
- thread local vs. global raiseHook()
|
||||
- incremental compilation (!)
|
||||
|
||||
|
||||
version 0.9.0
|
||||
|
|
@ -105,41 +106,6 @@ Low priority
|
|||
- timeout for locks
|
||||
|
||||
|
||||
Super operators
|
||||
===============
|
||||
|
||||
macro (pattern) [T](arg: array[T]) =
|
||||
|
||||
|
||||
|
||||
Patterns
|
||||
--------
|
||||
|
||||
Patterns are PEGs over the Nimrod AST. Patterns consist of:
|
||||
|
||||
type
|
||||
TPatternKind = enum
|
||||
pkAny, ## any node (.)
|
||||
pkNodeClass, ## set of node kinds
|
||||
pkTerminal, ## 'xyz'
|
||||
pkNonTerminal, ## a
|
||||
pkSequence, ## a b c
|
||||
pkOrderedChoice, ## a / b / c
|
||||
pkGreedyRep, ## a*
|
||||
## a+ --> (a a*)
|
||||
pkOption, ## a?
|
||||
pkAndPredicate, ## &a
|
||||
pkNotPredicate, ## !a
|
||||
pkCapture, ## {a}
|
||||
pkBackRef, ## $i
|
||||
pkSearch, ## @a
|
||||
pkCapturedSearch, ## {@} a
|
||||
pkRule, ## a <- b
|
||||
pkGrammar, ## list of rules
|
||||
|
||||
Choice operator requires capture.
|
||||
|
||||
|
||||
Version 2
|
||||
=========
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue