Commit Graph

818 Commits

Author SHA1 Message Date
Terence Parr ed7d4b1dc1 fail option on predicates work. 2012-10-20 15:57:06 -07:00
Terence Parr ab6b341942 a few tweaks/comments. 2012-10-20 12:51:36 -07: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 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 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 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 c68c058280 Implement Array2DHashSet.iterator 2012-10-14 21:45:29 -05: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 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
Terence Parr 2ecfe2671a size!=cardinality with BitSet. 2012-10-11 20:20:02 -07:00
Terence Parr f20cd82920 I need EOF edges on rule stop states for start rules. 2012-10-11 18:55:13 -07:00
Terence Parr 1723bbd6f5 no debug 2012-10-11 18:54:26 -07:00
Terence Parr 6654281aab Merge branch 'master' into new-conflicting-alts 2012-10-11 18:52:22 -07:00
Terence Parr 27a8e5e521 update comment on consume() 2012-10-11 18:51:58 -07:00
Terence Parr 643edf0263 let it consume EOF since we sometimes need to match that during prediction 2012-10-11 18:50:02 -07:00
Terence Parr badb48a987 almost there. 2012-10-11 18:47:47 -07:00
Terence Parr 058ed51349 initial impl 2012-10-11 13:09:08 -07:00
Terence Parr ad438a70ac updated the comments for SLL. 2012-10-11 12:09:38 -07:00
Terence Parr ebe633a2cc replace ctor for single ctx and don't merge wildcards when payloads aren't the same. fixes a unit test. 2012-10-08 15:26:56 -07:00
Terence Parr 7bc16f40ea Merge branch 'prediction-context-fixes' of git://github.com/sharwell/antlr4 2012-10-08 11:37:29 -07:00
Terence Parr d274650765 add null ptr so start rule it doesn't crash if you label the alternatives. 2012-10-08 11:32:38 -07:00
Sam Harwell 9cea095d81 Fix PredictionContext.mergeRoot placing states in the wrong order 2012-10-08 10:26:48 -05:00
Sam Harwell f43e3614a8 Fix invoking states for recursion contexts 2012-10-08 07:38:06 -05:00
Sam Harwell 1defbdcc5d Fix parent pointers in parse trees for nested recursion contexts 2012-10-07 23:01:26 -05:00
Terence Parr 05f1dc0d26 tweak 2012-10-01 16:09:18 -07:00
Sam Harwell 69c20f3cf6 Only perform array copy when necessary 2012-10-01 15:30:28 -05:00
Sam Harwell 3457cc73ea Significant updates to UnbufferedCharStream to meet the IntStream and CharStream interface requirements 2012-10-01 15:29:51 -05:00
Sam Harwell cd25890486 Many updates to UnbufferedTokenStream:
* Fix LT(-1) after a seek operation
* Prevent consume() after EOF is reached
* Use the EOF token provided by the TokenSource (no need to create a new one)
* Fix assigned token index when marks are in place and when add() is called by derived types
* Throw exception for some invalid use of mark/release/seek
* Prevent fill() from adding multiple EOF tokens
* Remove diagnostic println
* Updated field documentation
* Implement getTokenSource
2012-10-01 15:24:00 -05:00
Sam Harwell 5637a04eec Extensively document the IntStream, CharStream, and TokenStream interfaces 2012-10-01 14:52:30 -05:00
Sam Harwell fa3e6e5867 Move CharStream.EOF to IntStream.EOF 2012-10-01 14:09:11 -05:00
Sam Harwell fa7015f798 Move test helper methods out of exposed UnbufferedCharStream API 2012-10-01 11:53:04 -05:00
Sam Harwell 1c65bcd02f Move test helper methods out of exposed UnbufferedTokenStream API 2012-10-01 08:25:46 -05:00
Terence Parr 68dd847c04 * Fixed the unbuffered streams, which actually buffered everything
up by mistake. tweaked a few comments.

* Added a getter to IntStream for the token factory
2012-09-30 16:45:30 -07:00
Terence Parr 9845e4ff20 rm redundant field. 2012-09-30 12:46:01 -07:00
Terence Parr ac29e6cdac got unbufferedchar working I think. 2012-09-30 12:37:35 -07:00
Terence Parr db1bfa9c03 ParserATNSimulator wasn't using Token type param. 2012-09-29 16:58:51 -07:00