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 |
Sam Harwell
|
29d71acef9
|
Update documentation
|
2012-07-18 16:12:37 -05:00 |
Sam Harwell
|
a37f8cf4f1
|
Add missing license notices
|
2012-07-18 15:57:48 -05:00 |
Terence Parr
|
f220212a95
|
couldn't get Horstmann's routine to do EPS not PS so had to backtrack.
|
2012-07-14 16:32:04 -07:00 |
Terence Parr
|
47362b2951
|
use Horstmann's PS save not mine; it'll handle Japanese char etc.. this way.
|
2012-07-14 15:38:33 -07:00 |
Sam Harwell
|
d626c4acd6
|
Simplify ParserRuleContext.toString
|
2012-07-13 14:26:56 -05:00 |
Terence Parr
|
a3371ac9ea
|
rm unneeded override.
|
2012-07-09 17:32:20 -07:00 |
Terence Parr
|
9a4227841d
|
-print -> -tree
|
2012-07-08 13:38:56 -07:00 |
Terence Parr
|
707ff615b4
|
tweak javadoc
|
2012-07-08 12:18:43 -07:00 |
Terence Parr
|
3b2c0a6177
|
fix bug in get hidden channel stuff. rewrote. update test.
|
2012-07-07 18:48:48 -07:00 |
Terence Parr
|
ec47251bb2
|
unbuffered release() can get markers in weird order since we reset p to beginning of buffer. Might mark at 1 and then at release p = 0 etc... Don't look for errors. Just reset earliestMarker if needed.
|
2012-07-04 11:32:41 -07:00 |
Terence Parr
|
6b6274b0c8
|
add type narrowed getters
|
2012-07-02 15:48:45 -07:00 |
Terence Parr
|
71bd16020f
|
Merge branch 'master' into nogenerics-in-error-listener-2nd-try
|
2012-07-02 12:45:48 -07:00 |