Sam Harwell
83c680850e
Only create a new ATNConfigSet for reach when no DFA edge is available
2012-03-13 19:25:38 -05:00
Sam Harwell
9d774c6543
Separate handling of DFA and ATN transitions during lexer atn sim.
2012-03-13 19:25:37 -05:00
Sam Harwell
1f60da9cfd
Handle DFA error states in lexer atn exec
2012-03-13 19:25:37 -05:00
Sam Harwell
590558c4d8
Combine DFAExecState and ATNExecState so we no longer need to throw exceptions in LexerATNSimulator.failOrAccept for valid inputs
2012-03-13 19:25:31 -05:00
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
2d76dd8193
Merge commit 'bbff5bd'
2012-03-12 13:26:24 -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
Terence Parr
fb03f1e276
Merge remote-tracking branch 'sharwell/ignore-hprof'
2012-03-12 13:17:21 -07:00
Sam Harwell
3f1f76df7d
Move reportAmbiguity, reportContextSensitivity, reportAttemptingFullContext, reportInsufficientPredicates from ANTLRErrorStrategy to ANTLRErrorListener.
...
Add BaseErrorListener to allow implementing ANTLRErrorListener without implementing every method (e.g. ConsoleErrorListener).
DiagnosticErrorStrategy is now DiagnosticErrorListener, updated tests.
2012-03-12 15:07:48 -05:00
Sam Harwell
768bfc0cf2
Add ProxyErrorListener to allow dispatching error reporting to multiple listeners without manually iterating over the list of listeners.
2012-03-12 15:07:48 -05: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
bbff5bd20a
New tests related to if/if/else constructs
2012-03-12 07:26:39 -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
Sam Harwell
62c265fe54
Ignore heap dumps created during profiling (*.hprof)
2012-03-07 08:01:06 -06:00
Terence Parr
a9e74ce399
Merge branch 'failed-predicate-message' of git://github.com/sharwell/antlr4
2012-03-06 13:28:47 -08:00
Terence Parr
ce142a2a4c
Merge commit '51c38c1'
2012-03-06 13:27:46 -08:00
Sam Harwell
5280bc3280
Tweak doc comment
2012-03-06 07:34:20 -06: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
Sam Harwell
51c38c1103
Use single int _alt in generated code instead of a new _alt<choice.uniqueID> for each PlusBlock and StarBlock
2012-02-29 07:56:29 -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
ae08867ff3
alter visitTerminal interface, add visitErrorNode.
2012-02-26 22:07:45 -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
Terence Parr
1c68c10599
Merge branch 'master' of https://github.com/sharwell/antlr4
2012-02-26 15:36:42 -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
b7da3361de
fix bug. e : e '(' exprList ')' ... ; came back with e as a list not single element.
2012-02-26 15:33:05 -08: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
90bcfec456
Simplify CodeGenerator
2012-02-24 15:58:21 -06:00
Sam Harwell
a74da2df60
Use ==ParserRuleContext.EMPTY instead of .isEmpty()
2012-02-24 15:57:43 -06:00
Sam Harwell
019ea15e3f
Catch specific RecognitionException instead of Exception
2012-02-23 16:45:35 -06:00