101 lines
2.6 KiB
Plaintext
101 lines
2.6 KiB
Plaintext
ANTLR v4 Honey Badger early access
|
|
|
|
[sorry...haven't been keeping this up to date]
|
|
|
|
Apr 26, 2012
|
|
|
|
* -> for parser labels becomes #
|
|
|
|
Feb 17, 2012
|
|
|
|
* added -parse-listener option and differentiated between parse and parse
|
|
tree listener interfaces now. Only parse tree listener stuff generated
|
|
by default.
|
|
|
|
* names changed. visit() -> visitX(). enter/exit() -> enter/exitX()
|
|
* capitalizing automatically now. rule s -> SContext not sContext
|
|
* no enter/exit method in generic rule context object if rule has alt labels, nor in interfaces.
|
|
* dup labels allowed in same rule
|
|
* label X or x illegal if rule x exists
|
|
|
|
Feb 14, 2012
|
|
|
|
* Fixed https://github.com/antlr/antlr4/issues/8 and lots of other little things.
|
|
|
|
Jan 30, 2012
|
|
|
|
* Moving to github.
|
|
|
|
Jan 28, 2012
|
|
|
|
* ~[] stuff is allowed and works inside sets etc...
|
|
|
|
Jan 22, 2012
|
|
|
|
* Added ranges, escapes to [a-z] notation in lexer:
|
|
|
|
a-z is the inclusive range
|
|
escape characters with special meaning: trnbf\'" such as \t
|
|
\uXXXX Unicode character with text digits
|
|
\- is the - character
|
|
\] is the ] character
|
|
|
|
Missing final range value gives just first char.
|
|
Inverted ranges give nothing
|
|
Bad escape sequence gives nothing
|
|
|
|
Jan 21, 2012
|
|
|
|
* Added modeNames to gen'd lexers
|
|
* added lexer commands
|
|
skip
|
|
more
|
|
popMode
|
|
mode(x)
|
|
pushMode(x)
|
|
type(x)
|
|
channel(x)
|
|
|
|
WS : (' '|'\n')+ -> skip ;
|
|
|
|
use commas to separate commands: "-> skip, mode(FOO)"
|
|
* Lexer fields mv from x to _x like type changed to _type.
|
|
|
|
Jan 14, 2012
|
|
|
|
* labels on tokens in left-recursive rules caused codegen exception.
|
|
* leave start/stop char index alone in CommonTokenFactory; refers to original text.
|
|
* reuse of -> label on multiple alts in rule caused dup ctx object defs.
|
|
|
|
Jan 11, 2012
|
|
|
|
* -> id labels work now for outermost alternatives, even for left-recursive
|
|
rules; e.g.,
|
|
|
|
| a=e '*' b=e {$v = $a.v * $b.v;} -> mult
|
|
* Fixed a bug where visitTerminal got a NPE
|
|
* in tree views, spaces/newlines were blanks. I converted to \n and middle dot
|
|
for space.
|
|
|
|
Jan 5, 2012
|
|
|
|
* Deleted code to call specific listeners by mistake. added back.
|
|
* Labels allowed in left-recursive rules:
|
|
e returns [int v]
|
|
: a=e '*' b=e {$v = $a.v * $b.v;}
|
|
| a=e '+' b=e {$v = $a.v + $b.v;}
|
|
| INT {$v = $INT.int;}
|
|
| '(' x=e ')' {$v = $x.v;}
|
|
;
|
|
|
|
|
|
Jan 4, 2012
|
|
|
|
* '_' was allowed first in symbol names in grammar
|
|
* fix unit tests
|
|
* Allow labels in left-recursive rules
|
|
* lr rules now gen only 1 rule e->e not e->e_ etc... altered tests to build parse trees.
|
|
* no more -trace, use Parser.setTrace(true)
|
|
* add context rule option; not hooked up
|
|
* 1+2*3 now gives new parse tree: (e (e 1) + (e (e 2) * (e 3)))
|