much more efficient rod file generation

This commit is contained in:
Araq 2011-10-18 17:21:51 +02:00
commit 4de84024e5
18 changed files with 611 additions and 557 deletions

View file

@ -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
=========