Commit Graph

1111 Commits

Author SHA1 Message Date
Terence Parr 2232ea5101 was not computing lookahead correctly in _LOOK. It assumed all epsilons were predicates. 2012-03-19 17:50:51 -07:00
Sam Harwell bd7796544d Update comments 2012-03-19 08:33:55 -05:00
Sam Harwell 5e0f9a4490 Ensure target non-null in Transition constructor (additional runtime-side consistency check). 2012-03-19 08:33:36 -05:00
Sam Harwell 4bc615d72f Ensure that serialized transitions only point to states which weren't removed. Add unit test for a current failure case (will be a regression test once fixed). 2012-03-19 08:32:34 -05:00
Sam Harwell a70cb6f36a Fix NPE in LexerATNSimulator.execDFA error recovery 2012-03-19 08:17:59 -05:00
Sam Harwell ea434982fb Pull error reporting outside of try/finally to ensure errors are not hidden 2012-03-17 17:38:05 -05:00
Terence Parr ea7037dd2d missing semicolon 2012-03-16 14:29:07 -07:00
Terence Parr 9a0aaacbee rm k=1 chk to report early ambiguity. 2012-03-16 14:11:21 -07:00
Terence Parr 102980dffd make T.g same 2012-03-14 13:20:24 -07:00
Terence Parr 28ee391c81 Merge remote-tracking branch 'sharwell/loops-recursion-test' 2012-03-14 13:09:19 -07:00
Sam Harwell 0ec7f1528c Clean up testLoopsSimulateTailRecursion, move to TestFullContextParsing. 2012-03-14 15:04:01 -05:00
Sam Harwell ee0bc39b53 Add unit test for loopsSimulateTailRecursion 2012-03-14 14:08:22 -05:00
Terence Parr 6887c86d5e shelve 2012-03-14 12:04:18 -07:00
Sam Harwell ae871dcc07 Rename exec/exec to execDFA/execATN 2012-03-13 19:27:52 -05:00
Sam Harwell aeb43069aa Move reach variable inside loop. Remove unnecessary ATNConfigSet clone. 2012-03-13 19:25:39 -05:00
Sam Harwell 51a15ac4a7 ATNConfigSet prior to error is closure, not reach. Reach is empty. 2012-03-13 19:25:38 -05:00
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