Commit Graph

1626 Commits

Author SHA1 Message Date
Terence Parr e7b65057a6 added var for sll loop tail recursion default value; updated unit tests 2012-08-03 18:12:52 -07:00
Terence Parr 95f5d858cb fix null ptr 2012-08-03 16:56:41 -07:00
Sam Harwell 674471c090 Add NotNull annotations, null check, tweak documentation 2012-08-03 08:46:07 -05:00
Sam Harwell 43da92e117 Remove old tree parser code 2012-08-03 08:45:36 -05:00
Sam Harwell 5019278204 Add ATN optimization to collapse multiple alternatives to a single SetTransition where possible. Currently disabled for parser grammars since the code generator doesn't support set transitions. 2012-08-03 08:33:11 -05:00
Sam Harwell 1f4df2ea5a Add ATN optimization to remove null state entries and renumber the remaining states 2012-08-03 08:33:10 -05:00
Sam Harwell f9bacf5060 Add ATN optimizer (currently doesn't provide optimizations) 2012-08-03 08:33:10 -05:00
Sam Harwell eff9e0c47f Move TailEpsilonRemover to top-level class 2012-08-03 08:33:09 -05:00
Sam Harwell 54a3759412 LexerATNSimulator and ParserATNSimulator switch on result of getSerializationType() instead of performing multiple type checks 2012-08-03 08:24:24 -05:00
Terence Parr 86e47b9c02 update comments to explain SLL vs LL, predicate strategy, etc... (and did a small tweak in code) 2012-08-02 18:23:11 -07:00
Terence Parr 06d7c150fd slow again since i had to remove full LL context->alt cache (wasn't correct). But, threaded now makes bigger diff than before. 2012-08-02 17:01:53 -07:00
Sam Harwell ff4eb0f744 Transition classes except for SetTransition are final 2012-08-02 12:15:36 -05:00
Sam Harwell 60df00be4f Transition classes override getSerializationType() 2012-08-02 12:15:35 -05:00
Terence Parr 754e6eb593 mirrored parser ATN sim changes in lexer ATN sim for thread safety. reduced contention for contextCache. 2012-08-01 18:25:25 -07:00
Terence Parr b0b30fec68 cleanup 2012-08-01 18:05:47 -07:00
Terence Parr ff24630494 add cmt 2012-08-01 15:03:32 -07:00
Terence Parr b0c9a9c7c2 tried optimization concerning recomputing DFA states in DFA, but didn't help much. left in as comment for now. 2012-08-01 14:51:37 -07:00
Terence Parr 0cfe3b4206 tweak to leave code for printing DFA DOT 2012-08-01 14:36:19 -07:00
Terence Parr abb0ef5296 Merge branch 'main' of github.com:parrt/antlr4 into main 2012-08-01 13:44:52 -07:00
Terence Parr 80560efcf8 wow. i think i got threaded working. rm readwrite lock, sync add add to shared context and add dfa state 2012-07-31 19:39:31 -07:00
Terence Parr feb41eee15 fix a few unit tests. 2012-07-31 19:09:40 -07:00
Terence Parr 3d2cbe087d refactoring 2012-07-31 18:54:00 -07:00
Terence Parr abb268416e Merge branch 'master' into main 2012-07-31 18:34:33 -07:00
Terence Parr b8f7acdeac refactor to create DFAState target, fill it in, then add to DFA only after it's complete. Combine some helper methods. simpler. 2012-07-31 18:26:39 -07:00
Sam Harwell 170a8347bb Emit a RangeTransition instead of SetTransition if a set has only one interval 2012-07-31 09:07:04 -05:00
Terence Parr fedb7c105b tweaks 2012-07-30 22:24:12 -07:00
Terence Parr 85ea296632 added D2 as dup temp of D state. almost ready to change position of addDFAState 2012-07-30 22:15:09 -07:00
Terence Parr 56c304ead4 Merge branch 'master' into main 2012-07-30 17:29:26 -07:00
Sam Harwell 8c820269e4 Fix IntegerList.binarySearch 2012-07-30 19:24:20 -05:00
Terence Parr c893f2af08 Pulled Sam's new IntegerList 2012-07-30 15:20:43 -07:00
Sam Harwell 7d4f71d829 Use IntegerList in the tool 2012-07-30 15:18:07 -05:00
Sam Harwell dcdcad8feb Add IntegerList.addAll overload for Collection<Integer>, add contains, sort, hashCode, equals, toString. 2012-07-30 15:17:02 -05:00
Sam Harwell 3bf99d6d88 Add IntervalSet.toIntegerList(), use IntegerStack to hold mode stack in Lexer 2012-07-30 15:13:26 -05:00
Sam Harwell fa62570737 Add IntegerList and IntegerStack, behaves like ArrayList<Integer> and ArrayDeque<Integer> (mostly) except doesn't require boxing 2012-07-30 15:13:26 -05:00
Terence Parr c0ece0bd09 add read/write lock to lexer. 2012-07-29 17:21:10 -07:00
Terence Parr 489f3d17cb tweak 2012-07-29 17:04:05 -07:00
Terence Parr 8836e13954 use ReentrantReadWriteLock to sync. works much better but still occasional illegal monitor state :( 2012-07-29 17:01:41 -07:00
Terence Parr f5f6715a07 back to core sync around creating DFA in decisionToDFA. not thread-safe for dfa update. 2012-07-29 14:33:18 -07:00
Terence Parr 4fe9efeb85 tweak tester 2012-07-29 14:28:59 -07:00
Terence Parr c97f36bd89 reorg workers 2012-07-29 13:45:41 -07:00
Terence Parr 9bcfc83678 adding full LL prediction in DFAState from ctx -> predicted alt. Drops from 17s to 12s and costs only 4M more ram. woot! 2012-07-29 13:30:18 -07:00
Terence Parr 230b687b03 add barrier 2012-07-29 13:03:10 -07:00
Terence Parr 5712424156 create 2 worker threads for testjavalr 2012-07-29 12:28:29 -07:00
Terence Parr 7181483bbf test javalr does -2x now 2012-07-29 10:57:51 -07:00
Terence Parr 510c1c0dd9 clean up 2012-07-29 10:50:14 -07:00
Terence Parr 79594a942e synchronized lexer. just as fast now to build new parser/lexer each iter in TestJavaLR 2012-07-29 10:48:08 -07:00
Terence Parr ceab49e3ce rm for now 2012-07-29 10:12:09 -07:00
Terence Parr e3e739dfc7 The lexer and parser ATN simulators' adaptivePredict now synchronize on the specific DFA of the decision to be simulated. This should prevent a lot of contention that would occur if we synchronize the entire adaptivePredict method. When the individual DFA are created, we also synchronize on the shared DFA[] table quickly to create a DFA and insert it into the array. Code generation modified to have _decisionToDFA generated at the top of both the parser and the lexer. Simulators created now with the recognizer, ATN, DFA[]. Not sure the LexerInterp/ParserInterp work but pushing ahead anyway for the moment. 2012-07-29 09:49:35 -07:00
Terence Parr 8c8752a7b2 print file names if > 1 file 2012-07-28 18:33:21 -07:00
Terence Parr 3f26d42d53 add Sam's getConflictingAlts potential bug fix as comment 2012-07-28 18:33:05 -07:00