Terence Parr
aca3e0ddb2
make trim parse trees singular
2012-03-12 15:40:22 -07:00
Terence Parr
dc627158e6
loop invar. code motion
2012-03-12 14:19:19 -07:00
Terence Parr
2fc9760ba7
Merge remote-tracking branch 'sharwell/ambig-sempred'
2012-03-12 13:50:45 -07:00
Terence Parr
79f204ff94
Merge commit 'fa9ec19'
2012-03-12 13:22:55 -07:00
Terence Parr
754408da27
Merge commit '86671d3'
2012-03-12 13:19:35 -07:00
Sam Harwell
dce72dcbfb
* Recognizer._listeners initialized to have a single ConsoleErrorListener
...
* Use CopyOnWriteArrayList so listeners can be added/removed in callbacks
* Remove special handling for _listeners null or empty (never null, ConsoleErrorListener will be present if feature is desired)
2012-03-12 15:01:21 -05:00
Sam Harwell
50180825d9
Add boolean field ParserATNSimulator.reportAmbiguities (default true). When false, ambiguous alts aren't reported which allows usage of (the faster) incomplete semantic predicate evaluation even within execATN.
2012-03-10 16:41:57 -06:00
Sam Harwell
04cd48e88d
No need to fully evaluate predicates when called from execDFA because ambiguous alts aren't reported anyway.
2012-03-10 16:32:10 -06:00
Sam Harwell
2cc39c2f9b
Evaluate predicates for all ambiguous alternatives and report if still ambiguous after predicate evaluation. Remove misleading message insufficient predicates. Fixes antlr/antlr4#31 . Partially addresses antlr/antlr4#39 .
2012-03-10 16:16:39 -06:00
Sam Harwell
86671d30fb
Tweak comments
2012-03-10 13:23:02 -06:00
Sam Harwell
7525bb6e1d
Semantic predicates now evaluate with standard min-alt selection
2012-03-08 13:53:45 -06:00
Terence Parr
a9e74ce399
Merge branch 'failed-predicate-message' of git://github.com/sharwell/antlr4
2012-03-06 13:28:47 -08:00
Sam Harwell
5deab167a1
ParseTreeVisitor.visit takes a ParseTree... only visitChildren takes a RuleNode
2012-03-04 12:52:43 -06:00
Sam Harwell
b570641e2b
Simplify ParseTree.visitChildren; ParseTree.visit and visitChildren take a RuleNode parameter; update comments
2012-03-04 12:17:43 -06:00
Sam Harwell
a948736729
TerminalNodeImpl.isErrorNode now tests for ErrorNode interface instead of ErrorNodeImpl implementation
2012-03-03 21:57:49 -06:00
Sam Harwell
80b3ec8c62
Dispatch accept() for terminal nodes to visitor
2012-03-03 21:57:08 -06:00
Terence Parr
0375f8318a
rename a parameter
2012-03-01 18:01:27 -08:00
Terence Parr
2ba5a1f12a
Made the parse tree visitor walk ParseTree objects not ParserRuleContext objects. This necessitated pulling up the accept() and toStringTree(Parser) methods into ParseTree.
2012-03-01 17:57:49 -08:00
Sam Harwell
fa9ec191bd
Add TrimToSizeListener and Parser.get/setTrimParseTrees
2012-02-29 11:22:54 -06:00
Sam Harwell
c3cd99858c
Reduce size of generated code by emitting predicate text instead of full failed predicate message
2012-02-29 08:14:42 -06:00
Terence Parr
dd69a7532d
getToken/s returns TerminalNode now per Sam's suggestion. altered tests. seems correct.
2012-02-27 21:39:30 -08:00
Terence Parr
9ae92a5cef
reformat
2012-02-27 21:32:25 -08:00
Terence Parr
67b2e6d7c1
forgot to move Pair etc...
2012-02-26 21:55:23 -08:00
Terence Parr
e9a3de645a
add useful method to get a->b pairs out
2012-02-26 15:55:46 -08:00
Terence Parr
41be88dcd5
mv to runtime
2012-02-26 15:49:45 -08:00
Sam Harwell
bedc502d33
Set the listeners list back to null if all listeners are removed from it
2012-02-26 17:33:52 -06:00
Terence Parr
1e438746be
added interface for error nodes, method in terminalnode.
2012-02-26 15:32:18 -08:00
Terence Parr
db1b86af91
alter visitTerminal interface, add visitErrorNode.
2012-02-25 17:03:41 -08:00
Terence Parr
528e9c7b86
fix cut/paste error
2012-02-25 16:09:29 -08:00
Terence Parr
600c4bbd91
crap. sun already made IdentityHashMap; rm'ing my version
2012-02-25 16:07:34 -08:00
Terence Parr
73ae2b0bfc
Added ParseTreeProperty and added generically useful Map that ignores key.hashCode and equals() and simply uses key identity instead. In particular, this is useful for ANTLR because parse trees are actually interfaces laid on top of the rule context objects used by ANTLR's grammar analysis. These context objects use special equals methods and so on. Plus, when we want to annotate trees with values, we want a specific note to have a value. Identity is what we intend.
2012-02-25 13:43:32 -08:00
Sam Harwell
a74da2df60
Use ==ParserRuleContext.EMPTY instead of .isEmpty()
2012-02-24 15:57:43 -06:00
Sam Harwell
9bf6f284df
Code cleanup (little things like using .isEmpty() and StringBuilder, and specify some small-scale generic arguments)
2012-02-23 16:42:36 -06:00
Sam Harwell
1e3e092326
Fix unchecked warnings in clone()
2012-02-23 16:13:15 -06:00
Sam Harwell
e400f5b1a1
Move Recognizer._errHandler to Parser class
2012-02-23 16:13:14 -06:00
Sam Harwell
1c8efd6a48
Allow contravariant error listeners
2012-02-23 16:13:13 -06:00
Sam Harwell
6c26917b90
Use generic List instead of generic array for listeners
2012-02-23 16:13:12 -06:00
Sam Harwell
7dcb148d73
CommonTokenStream now extends BufferedTokenStream<Token> instead of BufferedTokenStream<CommonToken>. Token interface provides the same information and the change helps the work on improving generics.
2012-02-23 16:13:11 -06:00
Sam Harwell
d7dbef2782
Can get token start and stop index from Token interface now
2012-02-23 16:13:11 -06:00
Sam Harwell
1492648d26
Add missing @Override annotations
2012-02-23 16:13:06 -06:00
Sam Harwell
96c08bec52
Remove unused imports
2012-02-23 16:12:02 -06:00
Terence Parr
b459dafeb9
empty alternatives didn't trigger listener events. overrode getParent in ParserRuleContext to make type more specific.
2012-02-23 12:16:14 -08:00
Terence Parr
8a34176d82
added listener unit tests. fixed bug that didn't create ctx getters properly for recursive rules. added Symbol extends Token to parse tree stuff. added visitTerminal to Visitor. recursive alts now track their original, unedited AltAST subtree so we can properly count rule refs etc... later. dup of RuleRefAST was making wrong node. don't gen dispatch methods if no listener.
2012-02-22 12:44:33 -08:00
Terence Parr
58ef729be5
renamed next to target. factored out to methods, commented code.
2012-02-21 12:47:34 -08:00
Terence Parr
0e23c7e2a3
Merge commit '611728a3806d6a8c9fe44a538d34b448784986c1'
2012-02-21 12:14:11 -08:00
Sam Harwell
5fb389b6e4
Improve lexer performance during warm-up by tracking DFA states within exec (ATN) and using existing edges when available
2012-02-20 19:20:50 -06:00
Sam Harwell
611728a380
Update testPerformance to show information about DFA states in the lexer
2012-02-20 18:51:26 -06:00
Sam Harwell
a81b1a17eb
Extract abstract method in Recognizer for Parser.getGrammarFileName() and generated lexer's getGrammarFileName(). Make Recognizer.getTokenNames(), getRuleNames(), and getATN() abstract - implementations are always generated.
2012-02-20 17:18:57 -06:00
Sam Harwell
2982f4b5a6
Add comments describing the semantics of an ATNConfig set with partially predicated alts in ParserATNSimulator
2012-02-20 15:43:02 -06:00
Sam Harwell
16fa8ba4f4
Add comments describing the context depth latch in ParserATNSimulator.closure
2012-02-20 15:25:58 -06:00