Commit Graph

1730 Commits

Author SHA1 Message Date
Terence Parr cb0f5c0e51 Merge branch 'parsecancellationexception' of git://github.com/sharwell/antlr4 2012-10-24 12:58:26 -07:00
Terence Parr 31c9fc33f1 Merge branch 'ordered-configs' of git://github.com/sharwell/antlr4 2012-10-24 10:51:56 -07:00
Terence Parr 4f918f75bc Merge branch 'get-reachable-target' of git://github.com/sharwell/antlr4 2012-10-24 10:41:46 -07:00
Sam Harwell a80a6022ff Update pom.xml 2012-10-22 12:19:24 -05:00
Sam Harwell bb44db6397 Create a new ParseCancellationException for BailErrorStrategy. Derived from RuntimeException so existing handlers will still work. 2012-10-22 12:12:39 -05:00
Sam Harwell 36c63db299 Remove redundant casts, encapsulate fields in RecognitionException 2012-10-22 09:52:55 -05:00
Sam Harwell 4790ab76e1 Encapsulate fields in NoViableAltException and LexerNoViableAltException 2012-10-22 09:40:44 -05:00
Sam Harwell 1ae3c0104c Simplify FailedPredicateException constructors, encapsulate fields 2012-10-22 09:18:29 -05:00
Sam Harwell 12b2c34946 Lexer uses strictly-ordered alternatives within a rule. Simplifies code, increases performance when non-terminal (lexer rules) depth is limited, and actually fixes non-greedy behavior 2012-10-21 22:04:38 -05:00
Terence Parr ed7d4b1dc1 fail option on predicates work. 2012-10-20 15:57:06 -07:00
Terence Parr d96e02019a working towards b3 2012-10-20 13:59:57 -07:00
Terence Parr ab6b341942 a few tweaks/comments. 2012-10-20 12:51:36 -07:00
Terence Parr d996b5c8c7 update change log 2012-10-20 12:15:43 -07:00
Sam Harwell 52f1d3b6e5 Simplify getReachableTarget 2012-10-16 08:04:42 -05:00
Sam Harwell 1af9b4c338 Simplify and document non-greedy behavior in processAcceptConfigs 2012-10-16 08:01:46 -05:00
Sam Harwell fb87e4c785 Another fix for non-greedy with closures 2012-10-16 07:53:23 -05:00
Sam Harwell f9a63b8810 Fix bug in PredictionContext.arrayMerge 2012-10-15 14:57:06 -05:00
Sam Harwell c737baf20c Add several unit tests for greedy/non-greedy behavior in lexer 2012-10-15 14:37:23 -05:00
Sam Harwell 6fa853c14f Fixes to LexerATNSimulator.closure, fixes to non-greedy positive closure 2012-10-15 02:01:07 -05:00
Sam Harwell a40073a8cc Merge remote-tracking branch 'antlr/master' into non-greedy 2012-10-15 01:58:15 -05:00
Sam Harwell bbe77782db Fix state checking in new non-greedy handling 2012-10-15 00:56:25 -05:00
Sam Harwell d738949ccd Fix testOptional and testNoViableAltAvoidance 2012-10-14 22:41:18 -05:00
Sam Harwell aa2223cd6a Fix assertion in PredictionContext.mergeArrays 2012-10-14 22:40:34 -05:00
Sam Harwell 7c221f13ed Unify EMPTY_FULL_CTX_INVOKING_STATE and EMPTY_INVOKING_STATE (fixes an array indexing error during closure) 2012-10-14 22:25:11 -05:00
Sam Harwell 30b5e2c6be Fix greedy tests behaving as non-greedy in TestATNLexerInterpreter 2012-10-14 21:46:59 -05:00
Sam Harwell b0a4200a08 Allow greedy option for blocks in both lexer and parser 2012-10-14 21:46:58 -05:00
Sam Harwell 025cc6187a Fix handling of non-greedy blocks in the lexer (uses regex-style non-greedy with unordered alternatives) 2012-10-14 21:46:57 -05:00
Sam Harwell 28b243cda5 BlockEndState links to start state for each block in the ATN (constructed during deserialization) 2012-10-14 21:45:35 -05:00
Sam Harwell 0d30a7a60b Add ATN representation for non-greedy decisions 2012-10-14 21:45:34 -05:00
Sam Harwell 9ea072aee0 Uniform handling of non-greedy decisions in ATN factory 2012-10-14 21:45:33 -05:00
Sam Harwell 39c73302f6 Explicit greedy option overrides implicit greedy option 2012-10-14 21:45:32 -05:00
Sam Harwell 65793adfc8 Fix detection of unsupported block options 2012-10-14 21:45:31 -05:00
Sam Harwell 850fe5b9c2 Make sure to serialize/deserialize the ATN before using the interpreter since the runtime alters the ATN on load 2012-10-14 21:45:31 -05:00
Sam Harwell b3b1a3750d Allow optionsSpec at the beginning of a lexer block 2012-10-14 21:45:30 -05:00
Sam Harwell c68c058280 Implement Array2DHashSet.iterator 2012-10-14 21:45:29 -05:00
Terence Parr 93070445bd update change log 2012-10-14 18:53:54 -07:00
Terence Parr cb340b1e04 Merge branch 'new-conflicting-alts' 2012-10-14 18:51:12 -07:00
Terence Parr a0ffc84952 Merge branch 'master' into new-conflicting-alts 2012-10-14 18:47:32 -07:00
Terence Parr 327a3a0100 Revert "update comment on consume()"
This reverts commit 27a8e5e521.
2012-10-14 18:46:54 -07:00
Terence Parr 54871d52ff Revert "let it consume EOF since we sometimes need to match that during prediction"
This reverts commit 643edf0263.
2012-10-14 18:46:43 -07:00
Terence Parr 75a01636d0 got ambiguity reporting set right I think. fixed unit tests to force exact ambig detection. 2012-10-14 18:42:43 -07:00
Terence Parr e9c83c375f cleanup and refactor conflict detection code into PredictionMode. 2012-10-14 17:37:15 -07:00
Terence Parr 01bbce6952 full LL is always correct now, if slower. Stops prediction when resolvesToJustOneViableAlt(). SLL always uses heuristic 2012-10-14 13:25:34 -07:00
Terence Parr e7ece0e90a got fast prediction termination with exactAmbig option that forces ANTLR to scan ahead until it identifies the true ambiguity. 2012-10-13 18:12:33 -07:00
Terence Parr ec32b71761 another unit test 2012-10-13 15:48:58 -07:00
Terence Parr 742887c9b1 Add another unit test to show when to keep looking for lookahead during prediction 2012-10-13 15:41:42 -07:00
Terence Parr a9ccda48ab Merge branch 'new-conflicting-alts' of github.com:parrt/antlr4 into new-conflicting-alts 2012-10-13 10:48:43 -07:00
Terence Parr 4fe0517431 Merge branch 'master' of github.com:parrt/antlr4 into new-conflicting-alts 2012-10-13 10:46:19 -07:00
Terence Parr d6d3f6f506 missing ambig alt in msg. 2012-10-12 18:07:37 -07:00
Terence Parr e69734c501 rm loopsSimulateTailRecursion 2012-10-12 17:49:43 -07:00