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 |
Terence Parr
|
b56cd0f587
|
simplified delete configs algorithm.
|
2012-09-29 12:48:20 -07:00 |
Terence Parr
|
e78ecd418a
|
rm isGreedy from DecisionState, but allow ATN construction for lexer to be nongreedy. error if '.' in parser. rm unit tests for parser nongreedy
|
2012-09-29 12:33:00 -07:00 |
Terence Parr
|
c8a51ccfad
|
got wildcard working properly with recursion now!!! new unit test.
|
2012-09-27 12:22:16 -07:00 |
Terence Parr
|
19782e6d77
|
first wack at fixing nongreedy (ACTION | .)* for recursive rules.
|
2012-09-27 11:44:51 -07:00 |
Terence Parr
|
bca63c64aa
|
the test rig did not allow lexer only grammars; a regression.
|
2012-09-23 18:05:31 -07:00 |
Terence Parr
|
262a331a5b
|
recursive rule bug in lexer; the lexer ATN simulator was not checking for empty stack at rule stop states.
|
2012-09-23 18:04:46 -07:00 |
Sam Harwell
|
7ed6cdcc4b
|
TerminalNodeImpl.getSourceInterval didn't fulfill the contract of SyntaxTree.getSourceInterval
|
2012-09-22 20:10:01 -05:00 |
Sam Harwell
|
62e005c841
|
Add nb-configuration.xml files
|
2012-09-22 19:49:11 -05:00 |
Terence Parr
|
4abedb08dd
|
tweak comments
|
2012-09-22 12:29:22 -07:00 |
Terence Parr
|
ce38d61f3a
|
Merge branch 'flexiblehashmap' of github.com:sharwell/antlr4
|
2012-09-16 15:11:29 -07:00 |
Sam Harwell
|
1ce6b69651
|
Fix build warnings in FlexibleHashMap, reduce entry size
|
2012-09-16 13:44:34 -05:00 |
Sam Harwell
|
e9656e35f9
|
Fix codegen problem where notset and wildcard transitions could match invalid tokens and/or EOF
|
2012-09-16 12:56:10 -05:00 |
Terence Parr
|
aa2d893a77
|
got first draft of new "go/stop" algorithm.
|
2012-09-09 19:20:33 -07:00 |
Terence Parr
|
89656989e6
|
add new map that lets me specify hashCode/equals
|
2012-09-09 18:55:47 -07:00 |
Terence Parr
|
3c5dec1172
|
add large comment describing the decision rule for continuing analysis.
|
2012-09-09 17:56:42 -07:00 |
Terence Parr
|
4bbbff4e8e
|
comments and a rename
|
2012-09-08 15:23:33 -07:00 |
Terence Parr
|
0a961645be
|
fix comments; fix unit test
|
2012-09-08 13:13:00 -07:00 |
Sam Harwell
|
726fe2c983
|
Make sure to call visitErrorNode instead of visitTerminal when you have an ErrorNode. Also fix listener calls for case where _buildParseTrees is false (adds terminal as children of the rule nodes but won't actually construct the parse tree).
|
2012-09-08 14:57:30 -05:00 |
Terence Parr
|
7586afff27
|
don't pass new term node
|
2012-09-08 10:21:42 -07:00 |
Terence Parr
|
64cd79a18a
|
add return values
|
2012-09-08 10:14:10 -07:00 |
Terence Parr
|
2b5c3723ba
|
update comments from Sam's version
|
2012-09-06 14:17:13 -07:00 |
Terence Parr
|
38e0ad238d
|
Merge branch 'bail-error-propagation' of github.com:sharwell/antlr4 into main
|
2012-09-04 19:00:54 -07:00 |
Terence Parr
|
8dd215f4b4
|
Merge branch 'deserialize' of github.com:sharwell/antlr4 into main
|
2012-09-04 18:59:38 -07:00 |
Terence Parr
|
201db8b6d0
|
merge sam's pulls
|
2012-09-04 18:59:20 -07:00 |
Terence Parr
|
3565efbbc3
|
Merge branch 'parserrulecontext-tostring' of github.com:sharwell/antlr4 into main
|
2012-09-04 18:37:03 -07:00 |
Terence Parr
|
20aa8cf4ec
|
update comments
|
2012-08-27 12:05:05 -07:00 |
Terence Parr
|
d9ad3d0bde
|
rm as unneeded.
|
2012-08-27 12:02:16 -07:00 |
Terence Parr
|
60d99e62dc
|
rm ParseListener; tested the tracer with left recursive rules; weird but deterministic for entry events.
|
2012-08-27 11:22:42 -07:00 |
Terence Parr
|
050b27cf65
|
tweak comment
|
2012-08-26 18:09:52 -07:00 |
Terence Parr
|
1a52e0212e
|
tweak comment
|
2012-08-26 17:21:35 -07:00 |
Terence Parr
|
e33e355d66
|
tweak comment
|
2012-08-26 16:32:28 -07:00 |
Terence Parr
|
ad737ebdf6
|
tweak
|
2012-08-26 16:03:59 -07:00 |
Terence Parr
|
d8b4d6403a
|
add doxy stuff
|
2012-08-25 11:40:55 -07:00 |
Sam Harwell
|
a51f1e7055
|
Updated documentation in BailErrorStrategy
|
2012-08-21 13:24:39 -05:00 |
Sam Harwell
|
4508f96ce4
|
BailErrorStrategy propagates the RecognitionException to the current rule context and it's parents
|
2012-08-21 13:23:03 -05:00 |
Sam Harwell
|
dd12508f5d
|
Add overloads of RuleContext.toStringTree and RuleContext.toString which take a list of rule names instead of a Recognizer instance. Remove ParserRuleContext override because it does the same thing as the base method.
|
2012-08-19 11:43:21 -05:00 |
Sam Harwell
|
6f38942e31
|
Add overload of Trees.toStringTree that takes a list of rule names instead of a Recognizer instance
|
2012-08-19 11:38:13 -05:00 |
Sam Harwell
|
17f7efca0a
|
Never serialize edges for rule stop states since they can be trivially derived during ATN deserialization
|
2012-08-17 10:51:44 -05:00 |
Terence Parr
|
1d92b311ce
|
Merge branch 'master' into main
|
2012-08-13 12:38:00 -07:00 |
Sam Harwell
|
3bfcb7b38f
|
Add ATNSimulator.verifyATN to verify several assumptions about the deserialized ATN
|
2012-08-12 11:59:42 -05:00 |
Sam Harwell
|
2975c90fac
|
Serialize/deserialize the value of BlockStartState.endState
|
2012-08-12 11:58:26 -05:00 |
Sam Harwell
|
0c073062f7
|
TokensStartState is not really a BlockStartState because it doesn't have an associated end state
|
2012-08-12 11:56:07 -05:00 |
Sam Harwell
|
9b42acbf4d
|
ATNSimulator.deserialize computes values for PlusBlockStartState.loopBackState and StarLoopEntryState.loopBackState
|
2012-08-12 11:56:06 -05:00 |
Sam Harwell
|
83d8903f9f
|
ATNSimulator.deserialize derives rule stop states and (in the lexer) the outgoing transitions for those states
|
2012-08-12 10:27:48 -05:00 |
Terence Parr
|
2d62b73a14
|
Merge branch 'master' into main
|
2012-08-06 17:11:38 -07:00 |
Sam Harwell
|
199e9892dc
|
Should be checking for ErrorNode (interface) instead of ErrorNodeImpl (class)
|
2012-08-06 15:01:43 -05:00 |
Sam Harwell
|
cb09dd6d09
|
Move RuleNode, TerminalNode, ErrorNode, TerminalNodeImpl, and ErrorNodeImpl to top-level types
|
2012-08-06 15:01:00 -05:00 |
Terence Parr
|
492980de71
|
Merge branch 'master' into main
|
2012-08-04 21:31:37 -07:00 |
Sam Harwell
|
2947fe6a2a
|
Fix ATN optimizer leaving loop back state numbers in an inconsistent state
|
2012-08-04 22:22:51 -05:00 |
Terence Parr
|
0d92c25056
|
improve hashCode
|
2012-08-04 14:38:57 -07:00 |
Terence Parr
|
1bec176eaa
|
Impl Sam's no viable alt avoidance idea that chooses min alt that dips into outer context. unit test
|
2012-08-04 14:18:57 -07:00 |
Terence Parr
|
6d12cbfddb
|
fix regression; didn't work with stdin
|
2012-08-04 13:50:52 -07:00 |
Terence Parr
|
c2b49bd94e
|
pull in Sam's ATN alt collapsing optimizations with optimizeStates off as it causes a class cast exception.
|
2012-08-04 13:32:07 -07:00 |
Terence Parr
|
c7d1ea7e23
|
Merge remote-tracking branch 'sharwell/atn-optimization'
|
2012-08-04 12:08:43 -07:00 |
Terence Parr
|
b7b2a45c8b
|
update comments
|
2012-08-04 12:00:13 -07:00 |
Terence Parr
|
b160a3b14d
|
caching more operations in mergeCache, updated comments, added null chk in front of mergeCache ops.
|
2012-08-04 11:04:21 -07:00 |
Terence Parr
|
88dedbd1e0
|
added mergeArray cache, which didnt help java much but made massive diff to Go grammar. a file, nat.go, went from 2min to 3s in speed. Fixed bug where SLL had preds but they ORd to NONE. made it resolve to min alt. DoubleKeyMap moved to runtime.
|
2012-08-03 20:27:23 -07:00 |
Terence Parr
|
8a0af228d8
|
Revert "fix null ptr"
This reverts commit 95f5d858cb .
|
2012-08-03 18:27:57 -07:00 |
Terence Parr
|
b8c2f5b75b
|
added var for sll loop tail recursion default value; updated unit tests
|
2012-08-03 18:27:26 -07:00 |
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
|
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
|
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
|
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
|
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 |
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 |
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
|
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
|
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
|
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
|
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 |
Terence Parr
|
68275eb998
|
rm singleton set; didn't help.
|
2012-07-28 13:23:52 -07:00 |
Terence Parr
|
ee233f7dd3
|
add -SLL option, allow multiple input files, reuse same parser/lexer.
|
2012-07-28 13:07:51 -07:00 |
Terence Parr
|
75fd3264ff
|
adding new equivalence class support code and new SingletonSet
|
2012-07-28 11:53:40 -07:00 |
Terence Parr
|
680df17280
|
rm transient context cache for closure computations; slight speed improvement maybe. less complex.
|
2012-07-28 10:51:07 -07:00 |
Terence Parr
|
eda95f7478
|
DFA cache on again; dropped from 25 to 16M!!!
|
2012-07-28 10:34:34 -07:00 |
Terence Parr
|
8a301f59f8
|
try making smaller config list.
|
2012-07-28 10:29:04 -07:00 |
Terence Parr
|
2ee5a2f3ae
|
release entire ConfigHashSet upon readonly. sames some mem and is faster.
|
2012-07-27 22:38:43 -07:00 |
Terence Parr
|
7ff5544573
|
wipe out config lookup in ATNConfigSet when it goes readonly.
|
2012-07-27 22:20:23 -07:00 |
Terence Parr
|
54fd28c29d
|
add() was wrong
|
2012-07-27 21:03:41 -07:00 |
Terence Parr
|
8279c3da11
|
turn on local context cache.
|
2012-07-27 20:53:10 -07:00 |
Terence Parr
|
14372f2515
|
only 14 unit tests fail.
|
2012-07-27 17:38:02 -07:00 |
Terence Parr
|
b8f072e231
|
rebuilt new hashtable as T[][]
|
2012-07-27 17:18:33 -07:00 |
Terence Parr
|
b843d6cf59
|
initial new hash table impl.
|
2012-07-27 14:51:07 -07:00 |
Terence Parr
|
b83c90af2f
|
play with atnconfigset fields
|
2012-07-27 14:50:36 -07:00 |
Terence Parr
|
9445d1fdd6
|
update comment
|
2012-07-27 10:38:43 -07:00 |
Terence Parr
|
26165c5d54
|
atnconfigsets can be readonly now. no copying to put into new DFA state, set readonly instead. made atnconfigset.equals() more accurate. add -notree option to test java lr
|
2012-07-27 10:34:59 -07:00 |
Terence Parr
|
093af0edce
|
update comment
|
2012-07-26 18:26:17 -07:00 |
Terence Parr
|
6322ff3abd
|
add comment
|
2012-07-26 18:17:05 -07:00 |
Terence Parr
|
0e24a66f07
|
reduce memory usage by creating LexerATNConfig a subclass with the lexer action index. saves about 2M on java.* with javalr.
|
2012-07-26 17:51:02 -07:00 |
Terence Parr
|
3c7b4c2a33
|
big cleanup.
|
2012-07-26 17:28:10 -07:00 |
Terence Parr
|
6b8e6cf0a7
|
reduces a few equals calls.
|
2012-07-26 10:58:11 -07:00 |
Terence Parr
|
faafe8dfa2
|
no local/shared predctx caches. remove spurious array creation.
|
2012-07-26 10:35:52 -07:00 |
Terence Parr
|
86a4f26596
|
still has dfa and local predict ctx cache, but doesn't help much, and takes time. Eval preds as we pass them in full ctx mode; no sempred ctx in configs then. removed LANDMINE!!!!!!!!! some lame code that uses fields like _startIndex; fix that. added bail option to testjavalr. 18s to parse java.* with javalr full ctx now.
|
2012-07-25 18:47:34 -07:00 |
Terence Parr
|
05de714987
|
add chk for null contextCache.
|
2012-07-25 10:58:04 -07:00 |
Terence Parr
|
3774c5752b
|
add more tracking var
|
2012-07-25 10:30:19 -07:00 |
Terence Parr
|
3cec976f7e
|
Don't pursue the closure if there is just one state or it's predicting unique alt. Fixed up computeReachSet() to do this. Dropped from 6s to 4.5s for TestJavaLR -SLL on java.* with 45M max footprint.
|
2012-07-24 18:45:23 -07:00 |
Terence Parr
|
2495ce6b20
|
add SLL option to the ATN simulator and use in TestJavaLR.
|
2012-07-24 17:42:47 -07:00 |
Terence Parr
|
2ae4d4eebd
|
add ctx cache to merge op. now i get optimal graph it seems. doesn't seem longer for java.* with JavaLR. still landmine in Pattern.java, Foo.java. Made toDOTString sort predctx nodes by id for repeatable tests. updated unit tests.
|
2012-07-24 16:26:01 -07:00 |
Terence Parr
|
ac4f00524e
|
add ctx cache.
|
2012-07-24 14:19:43 -07:00 |
Terence Parr
|
9627652b67
|
tweak to compile
|
2012-07-24 12:20:56 -07:00 |
Terence Parr
|
320868d661
|
added code chking size of ctxs. changed configsets -> configs. added recur getallnodes.
|
2012-07-24 10:04:51 -07:00 |
Terence Parr
|
344a56fd1e
|
finished inter-dfa-state-context-cache but doesn't fix landmine. add debug_list_atn_decisions field.
|
2012-07-23 18:21:53 -07:00 |
Terence Parr
|
1966379265
|
shelve to look back at sam's. added optimizeConfigs() stuff.
|
2012-07-23 17:50:22 -07:00 |
Terence Parr
|
935fd2831e
|
add writeFile util. improve dbg msg
|
2012-07-23 10:29:12 -07:00 |
Terence Parr
|
d8a9207041
|
improve combine common parents, return a or b in merge array of merged is a or b; new unit test.
|
2012-07-22 20:07:46 -07:00 |
Terence Parr
|
e18b9132d9
|
cleanup and merge common parents for array merge; fixes unit test
|
2012-07-22 16:39:53 -07:00 |
Terence Parr
|
f1e4d85d0a
|
fix cut/paste error.
|
2012-07-22 16:17:07 -07:00 |
Terence Parr
|
f7eeca274f
|
reorg closure and fix bug where $ in arrayctx wouldn't perform global follow. fix case in array merge that didn't check both a[i], b[i] as $ (only matters in full ctx). unit tests for graph show fewer ctx's created.
|
2012-07-22 16:09:45 -07:00 |
Terence Parr
|
44ae1dad0b
|
if merged array is 1 node, return singleton. more unit tests
|
2012-07-22 15:05:12 -07:00 |
Terence Parr
|
3edb35d95e
|
cleanup; avoid array creation
|
2012-07-22 12:59:26 -07:00 |
Terence Parr
|
829ad9191c
|
didn't join a$ + bx as [a,b]$ for local ctx. new unit test to chk
|
2012-07-22 12:57:30 -07:00 |
Terence Parr
|
8695210903
|
cleanup, simplify array ctx equals
|
2012-07-22 12:17:34 -07:00 |
Terence Parr
|
43424cd5df
|
do check for a==b in merge(); improve DOT output
|
2012-07-22 12:10:40 -07:00 |
Terence Parr
|
43e986db8b
|
small hash code cleanup.
|
2012-07-22 11:27:44 -07:00 |
Terence Parr
|
54d23066b2
|
merge of array and $ for rootIsWildcard was broken. Fixed JavaLR parsing. Still sticks on Pattern.java but not 5 hours anymore--faster up til that landmine.
|
2012-07-21 19:24:03 -07:00 |
Terence Parr
|
36a725765e
|
cleanup; hashcode for single node pred ctx was wrong. failed to see [46] and [46] as same.
|
2012-07-21 17:13:16 -07:00 |
Terence Parr
|
991014d3f2
|
clean up, add comments, fix graph unit tests, updated toDotString().
|
2012-07-21 15:10:15 -07:00 |
Terence Parr
|
f78bf4d097
|
rm comment; looks inappropriate for branch
|
2012-07-21 10:45:59 -07:00 |
Terence Parr
|
0141bc058a
|
merge from master,In preparation for continuing on this experiment branch.
|
2012-07-21 10:38:55 -07:00 |
Sam Harwell
|
885f6530ad
|
Use chained calls to append instead of string concatenation
|
2012-07-20 14:52:49 -05:00 |
Sam Harwell
|
44ef41ff29
|
Remove unnecessary variable initializations
|
2012-07-20 14:52:46 -05:00 |
Sam Harwell
|
3b9940b02a
|
Use isEmpty() instead of comparing size() with 0
|
2012-07-20 14:52:43 -05:00 |
Sam Harwell
|
2f0029a040
|
Improved handling of (potentially) null fields
|
2012-07-20 14:52:14 -05:00 |
Sam Harwell
|
4c4f767d17
|
Prevent NPE after reporting error
|
2012-07-20 14:52:13 -05:00 |
Sam Harwell
|
45e42d7243
|
Parameter to equals can be null
|
2012-07-20 14:51:54 -05:00 |
Sam Harwell
|
3a35f3cb08
|
Check object type in equals
|
2012-07-20 14:51:53 -05:00 |