Sam Harwell
eca9090fce
Remove tracing support from LexerATNSimulator - in process of moving it to dynamic instrumentation to eliminate runtime overhead in production use
2012-11-01 05:35:01 -05:00
Sam Harwell
d748271816
Remove getSpeculativeText since getText works again
2012-10-31 21:52:50 -05:00
Sam Harwell
a4ba562210
LexerATNSimulator adjusts the input position during a speculative predicate evaluation to accurately reflect the state where the predicate appears in the grammar
2012-10-31 21:52:41 -05:00
Sam Harwell
efa9ea7811
Simplify LexerATNSimulator to reduce duplicate code (duplicate instruction executions and duplicated code blocks)
2012-10-30 09:24:03 -05:00
Sam Harwell
bad2751a2c
Add edge suppression for lexer start state - required for left edge predicates
2012-10-30 08:46:42 -05:00
Terence Parr
72c1fc8f6d
tweaks on comments
2012-10-29 12:47:09 -07:00
Sam Harwell
f554a2ed4f
Eliminate debug and dfa_debug overhead in LexerATNSimulator by making them compile-time constants
2012-10-29 13:32:02 -05:00
Sam Harwell
7bf50c8263
LexerATNSimulator uses explicit lower bound for DFAState.edges array
2012-10-29 13:32:02 -05:00
Sam Harwell
1269ce8d4e
Remove 2 field accesses per input character in LexerATNSimulator
2012-10-29 13:32:01 -05:00
Sam Harwell
0deadc688a
Remove unnecessary array indexing operation in execDFA
2012-10-29 13:32:00 -05:00
Sam Harwell
c34f0d6945
Remove duplicate array bounds check
2012-10-29 13:31:59 -05:00
Sam Harwell
afed3ac349
Remove unnecessary null checks
2012-10-29 13:31:58 -05:00
Sam Harwell
d17f919123
Updated NotNull annotations in LexerATNSimulator
2012-10-29 13:31:57 -05:00
Sam Harwell
5dace66921
DFAState.configs cannot be null
2012-10-29 13:31:57 -05:00
Sam Harwell
9873230f55
Correctness for lexer DFA with semantic predicate evaluation only requires suppressing single edges from the DFA
2012-10-29 13:31:56 -05:00
Terence Parr
a115490d5e
Merge branch 'warnings-as-errors' of git://github.com/sharwell/antlr4
2012-10-29 11:27:46 -07:00
Sam Harwell
ee64790739
In lexer, configs which never reached a non-greedy decision state are fully greedy (unordered alternatives, longest match)
2012-10-29 13:14:51 -05:00
Sam Harwell
871db85ecb
Add field DecisionState.nonGreedy, computed in tool and serialized as one bit in the state type field
2012-10-29 13:14:50 -05:00
Sam Harwell
4adef1e455
Output from -atn flag shows the order of outgoing edges from decision states.
2012-10-28 11:17:39 -05:00
Sam Harwell
950f588ac0
Fix implementations: TokenStream interface says getText method returns non-null
2012-10-28 10:04:34 -05:00
Terence Parr
d5341b55af
Merge branch 'encapsulation' of git://github.com/sharwell/antlr4
2012-10-24 12:59:46 -07:00
Terence Parr
b89445e861
Merge branch 'maven-update' of git://github.com/sharwell/antlr4
2012-10-24 12:58:52 -07:00
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
ab6b341942
a few tweaks/comments.
2012-10-20 12:51:36 -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
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
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
Sam Harwell
2673e08bfc
Use arrays T[] instead of Set<T> to save memory in SemanticContext instances
2012-07-24 12:30:24 -05:00
Sam Harwell
760c403151
Use arrays T[] instead of List<T> to save memory in the cached DFA
2012-07-24 12:30:03 -05: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
Terence Parr
111c44b3fd
add default ctor to Lexer
2012-07-02 12:45:30 -07:00
Terence Parr
4329f00186
Merge branch 'master' into nogenerics-in-error-listener-2nd-try
2012-07-02 12:19:51 -07:00
Terence Parr
ae7313f36a
factor out input.read() and make ctor for easy subclass.
2012-07-02 12:19:20 -07:00
Terence Parr
3ad87ba12c
rm generic parameter from ANTLRErrorListener, ripple effect.
2012-07-01 22:34:35 -07:00
Terence Parr
bb5790d6a9
Add convenience method.
2012-07-01 17:36:22 -07:00
Terence Parr
37396d6040
clean up
2012-07-01 12:20:54 -07:00
Terence Parr
db66257d7e
cleanup so Lexer lets us subclass to support multiple token emit()s per lex rule match.
2012-07-01 12:19:44 -07:00