Commit Graph

1521 Commits

Author SHA1 Message Date
Terence Parr 56cd7cdf2c split apart 2013-09-04 12:37:04 -07:00
Terence Parr 5f60ad859e stash 2013-09-04 10:15:22 -07:00
Terence Parr 1070d3a10f improved tag matching, got escapes working. 2013-09-03 18:32:54 -07:00
Terence Parr d4316ff44b ah. stupid intellij didn't submit 2013-09-02 18:21:21 -07:00
Terence Parr b4a7ace911 got decent start 2013-09-02 18:20:58 -07:00
Terence Parr 3416f6db05 playing with initial matcher 2013-09-01 15:43:50 -07:00
Terence Parr ba6c711e85 avoid resource leak upon write() exception (Coverity) 2013-08-31 17:31:17 -07:00
Terence Parr be0d6b3fce clean up equals/hashcode for Interval (Coverity) 2013-08-31 17:25:32 -07:00
Terence Parr d22290d44f consistent return of null for empty DFA (Coverity) 2013-08-31 17:20:00 -07:00
Terence Parr a7a2050fd2 rm dead code (Coverity) 2013-08-31 17:19:12 -07:00
Terence Parr d0b9e7388c change cast to null chk (Coverity) 2013-08-31 17:08:25 -07:00
Terence Parr 9420672520 make explicit that graphs must be EmptyContext, never null (Coverity) 2013-08-31 16:29:40 -07:00
Terence Parr d4f2abc5e3 resource leak fix from Coverity Scan 2013-08-31 13:01:53 -07:00
Terence Parr 68723eff20 fix null ptr exception as reported by Coverity 2013-08-29 17:11:52 -07:00
Sam Harwell 274120c2b6 Now working on release 4.1.1 2013-07-02 19:11:04 -05:00
Sam Harwell 6236072e3b Documentation updates prior to release 2013-06-30 15:50:56 -05:00
Sam Harwell 89a251e497 Simplify ArrayPredictionContext.isEmpty() 2013-06-30 15:42:27 -05:00
Sam Harwell 05f7fc6500 Update development version to 4.1 (from 4.0.1) 2013-06-30 12:46:41 -05:00
Sam Harwell c3af4e9b7b Merge pull request #278 from sharwell/reduce-gc 2013-06-24 15:35:21 -05:00
Sam Harwell ca21368961 Merge pull request #290 from sharwell/fix-288
Remove the ParserRuleContext.altNum field (fixes #288)
2013-06-24 13:22:53 -07:00
Sam Harwell c58721b78c Merge pull request #291 from sharwell/fix-282 2013-06-24 15:17:01 -05:00
Sam Harwell b0ddb45654 Merge pull request #284 from sharwell/epsilon-analysis
Add the EPSILON_CLOSURE error and EPSILON_OPTIONAL warning
2013-06-24 13:09:38 -07:00
Sam Harwell 7453ddaf72 closureBusy set is only necessary to prevent infinite recursion for right-recursive SLL rules (fixes #282) 2013-06-24 14:57:55 -05:00
Sam Harwell f6bcbdba61 Remove the ParserRuleContext.altNum field (fixes #288) 2013-06-24 12:20:46 -05:00
Sam Harwell e575dc40e3 Merge pull request #285 from sharwell/non-greedy-optional
Fix ATN created for non-greedy optional block with multiple alternatives
2013-06-24 10:01:40 -07:00
Sam Harwell 40f41e2b1c Fix ATN created for non-greedy optional block with multiple alternatives 2013-06-14 21:05:58 -05:00
Sam Harwell 3bb774a508 Add the EPSILON_CLOSURE error and EPSILON_OPTIONAL warning 2013-06-14 20:53:34 -05:00
Sam Harwell 84324f1dad PredictionContext instances are not naturally ordered, so remove Comparable implementation 2013-06-06 15:44:38 -05:00
Sam Harwell 4c45a4bc66 Reduce GC requirements by creating fewer objects during closure 2013-06-06 15:39:22 -05:00
Sam Harwell 9d11817667 Resize ANTLRInputStream.data after reading a file with fewer characters than bytes 2013-06-01 22:11:19 -05:00
Sam Harwell 2a90413188 Use standard 0-based indexing 2013-06-01 22:07:27 -05:00
Sam Harwell dc801ad6a7 Extend the supported input character range to include all UTF-16 code points (specifically, U+FFFF is now supported, fixes #267) 2013-06-01 22:03:18 -05:00
Sam Harwell 780b7ac4ce Document ANTLRErrorListener and DiagnosticErrorListener (fixes #265) 2013-06-01 22:00:06 -05:00
Sam Harwell f1f134c962 DiagnosticErrorListener includes rule names for each decision in its reports 2013-06-01 21:55:31 -05:00
Sam Harwell 469ebdd6e8 Fix unit tests now that the parser might not compute the conflicting alts BitSet before calling report methods 2013-05-20 14:58:32 -05:00
Sam Harwell 13f121a16f Add @NotNull annotations to listener and visitor methods 2013-05-20 14:20:54 -05:00
Sam Harwell 0644d1a471 Remove statistics gathering from ParserATNSimulator that's more suited for specialized listeners 2013-05-18 14:18:53 -05:00
Sam Harwell d8f2a5ce3c Pass more information to ANTLRErrorListener methods 2013-05-18 14:17:36 -05:00
Sam Harwell d9d5100105 Use JavaUnicodeInputStream for proper handling of Unicode escape sequences in Java source code 2013-05-17 23:47:59 -05:00
Sam Harwell f9f4883855 Updated documentation in LL1Analyzer 2013-05-14 16:26:45 -05:00
Sam Harwell c0d1fcc110 Use 0-based indexing for decision lookahead so we aren't wasting memory, and array indexing is now consistent with ATN state outgoing transitions indexing 2013-05-14 09:57:04 -05:00
Sam Harwell 33c316baa4 Use a called rule stack to prevent stack overflow in LL1Analyzer 2013-05-14 09:54:27 -05:00
Sam Harwell d67d924b0d Update additional classes to use MurmurHash hashing 2013-05-05 14:21:42 -05:00
Sam Harwell fc21b41afb Update PredictionContext to use the MurmurHash 3 hash algorithm 2013-05-05 14:21:41 -05:00
Sam Harwell a7d2838838 Add a default title to the TreeViewer dialog 2013-05-01 22:38:36 -05:00
Sam Harwell 2fe7804ee3 Tweak TreeViewer layout since the zoom slider only affects the visual layout 2013-05-01 22:38:05 -05:00
Bart Kiers 9a75c629d2 Added JTree to TreeViewer. 2013-05-01 22:14:12 -05:00
Terence Parr eb9eb17aa2 inline predictATN into adaptivePredict 2013-04-25 17:39:37 -07:00
Sam Harwell 5821747a42 Add TestPerformance.COMPUTE_TRANSITION_STATS 2013-04-24 12:47:25 -05:00
Sam Harwell ca0b0ae74c Extract methods getExistingTargetState and computeTargetState 2013-04-24 12:42:18 -05:00
Sam Harwell f015942b5e * Simplify creation of new DFA edges - only create the target state and let DFA code check for termination conditions
* Fix handling of previously cached error edges (always need to check previous state for reaching a rule stop state)
* Fix DFA created during SLL-only parsing (should be identical to the DFA created by full LL parsing)
2013-04-24 12:29:43 -05:00
Sam Harwell 297754fff5 Updated documentation for addDFAEdge and addDFAState 2013-04-24 12:18:18 -05:00
Sam Harwell 1a07a6b6fa Improved encapsulation in ParserATNSimulator 2013-04-24 12:18:17 -05:00
Sam Harwell ef8b10ebc4 Cleanup and encapsulation in LexerATNSimulator 2013-04-24 12:18:13 -05:00
Sam Harwell 25676332fb Remove unused and undocumented method DFA.getATNStatesAlongPath 2013-04-24 10:32:51 -05:00
Sam Harwell 88e836c4d9 Remove unused class ParserATNPathFinder 2013-04-24 10:30:58 -05:00
Sam Harwell 845bf53a51 Use HashMap instead of LinkedHashMap for DFA.states 2013-04-22 16:42:48 -05:00
Sam Harwell 7ebcc41b7b Cache the ATNConfigSet hash code after it's made read only 2013-04-22 16:13:22 -05:00
Sam Harwell a55a94c26e Use a better hash code for DFAState 2013-04-22 16:13:13 -05:00
Sam Harwell 6c8a6178ee Avoid constructing the mergeCache when it's not needed 2013-04-22 16:12:20 -05:00
Sam Harwell ecf2258380 Revert "add counter for stack graph nodes."
This reverts commit 43e73c8da9.
2013-04-21 13:11:40 -05:00
Terence Parr c81a839897 Merge branch 'master' of github.com:antlr/antlr4 2013-04-20 10:14:10 -07:00
Terence Parr 43e73c8da9 add counter for stack graph nodes. 2013-04-20 10:13:02 -07:00
Sam Harwell a4d174f44b Remove statistics that lost their meaning 2013-04-18 15:52:40 -05:00
Sam Harwell aaea26ee3a Remove execDFA - it doesn't do anything execATN doesn't do 2013-04-18 15:52:37 -05:00
Sam Harwell 9206a263b7 Add error edges to DFA 2013-04-18 15:52:34 -05:00
Sam Harwell 64354e5740 Add computed state to DFA before moving to full context simulation 2013-04-18 15:52:31 -05:00
Sam Harwell 2393cfd40e Remove unnecessary locals 2013-04-18 15:52:28 -05:00
Sam Harwell 5727128722 Allow ATN fallback in parser to continue to use DFA edges when available 2013-04-18 15:52:26 -05:00
Sam Harwell a90529720e Don't try to optimize read-only configuration sets 2013-04-18 15:52:23 -05:00
Sam Harwell 2410b97aab addDFAEdge needs to return the true target state of the added edge 2013-04-18 15:52:20 -05:00
Sam Harwell 74f4938033 Remove unnecessary duplicate conditions 2013-04-18 15:52:17 -05:00
Sam Harwell 3defe6a2b1 Remove comments with incorrect concurrency requirements 2013-04-18 15:52:14 -05:00
Sam Harwell bc9fd41ae5 Remove unnecessary local 2013-04-18 15:52:11 -05:00
Sam Harwell db85cbc257 Fix EOF handling when closure operation was skipped (fixes #218) 2013-04-12 14:02:24 -05:00
Sam Harwell 5c2b764670 Finer locks in DFA updates 2013-04-12 13:19:40 -05:00
Sam Harwell 8b3062175d Fewer and finer locks on ATNSimulator.sharedContextCache 2013-04-12 13:19:04 -05:00
Sam Harwell 05f667d2e5 Initialize the elements of the decisionToDFA arrays when the array is created 2013-04-12 13:17:53 -05:00
Sam Harwell 2242948c03 Merge branch 'fix-76' 2013-03-27 15:02:17 -05:00
Sam Harwell f75878b3e6 Merge branch 'fix-196' 2013-03-27 15:01:45 -05:00
Sam Harwell c592e41637 Split serialized ATN in Java target to ensure string literals are under 65535 bytes limit (fixes #76) 2013-03-27 11:04:28 -05:00
Sam Harwell 15a23c3cd9 Configs "in context" have special meaning for predicate transitions, so don't add them to closure busy as a visited state or some configs could be improperly eliminated from the closure set (fixes #196) 2013-03-26 23:11:20 -05:00
Sam Harwell 0bdf5aa4d1 Remove unused Parser utility method toStrings left over from output=template 2013-03-26 18:53:12 -05:00
Sam Harwell dd9ba73b6f Improved documentation and use of the Parser._tracer field; made the field private instead of protected 2013-03-26 18:53:09 -05:00
Sam Harwell 18bb9dc9be Updated documentation of getBuildParseTree and setBuildParseTree 2013-03-26 18:53:06 -05:00
Sam Harwell a60df9d28e Updated documentation of Parser's parse listener related methods; event trigger methods are protected instead of public 2013-03-26 18:53:03 -05:00
Sam Harwell 3acc78cf87 Use full name "listener" for variables instead of just "l" 2013-03-26 18:53:00 -05:00
Sam Harwell a087ed17ee Updated Parser documentation 2013-03-26 18:52:57 -05:00
Sam Harwell f12de7dfa7 Remove unused (commented out) code 2013-03-26 18:52:54 -05:00
Sam Harwell 1d3910a78b Updated documentation of Parser fields 2013-03-26 18:52:51 -05:00
Sam Harwell cb6207e707 Updated documentation of Parser.match and Parser.matchWildcard 2013-03-26 18:52:49 -05:00
Sam Harwell c577f5abfe Updated documentation in RecognitionException 2013-03-26 18:52:46 -05:00
Sam Harwell 6adf9bc95d Remove unnecessary null check 2013-03-26 18:42:21 -05:00
Sam Harwell a7e021da4c Updated ANTLRErrorStrategy and DefaultErrorStrategy documentation 2013-03-26 18:42:18 -05:00
Sam Harwell 1213aaad0b Call inErrorRecoveryMode instead of accessing the errorRecoveryMode field directly 2013-03-26 18:42:16 -05:00
Sam Harwell 185172caac Improved encapsulation of DefaultErrorStrategy internal implementation details (protected methods instead of public) 2013-03-26 18:42:13 -05:00
Sam Harwell 56e49fdc38 ANTLRErrorStrategy.sync and recover can throw a RecognitionException, but not reportError 2013-03-26 18:41:48 -05:00
Sam Harwell 70452f7e4b ANTLRErrorStrategy.beginErrorCondition and endErrorCondition were implementation details. Replaced them with the API-relevant alternatives reset and reportMatch 2013-03-26 18:41:45 -05:00
Sam Harwell 6c4f4181d9 Simplify the ANTLRErrorStrategy interface by reusing the token factory from the parser instead of having the error strategy maintain its own separately 2013-03-26 18:41:42 -05:00
Sam Harwell 07689de50f Updated @NotNull and @Nullable annotations, linked documentation 2013-03-26 18:41:39 -05:00
Sam Harwell c6a9d62b25 Track the number of syntax errors in Parser.notifyErrorListeners instead of in the error strategy 2013-03-26 18:23:06 -05:00
Sam Harwell bc17cd4a28 Move primary implementation of getExpectedTokens to ATN, fixes #191 2013-03-26 18:14:19 -05:00
Sam Harwell 4f29c2fe3d Updated ATN documentation 2013-03-26 18:14:16 -05:00
Sam Harwell f6ad977e0d ATN fields grammarType and maxTokenType are now final 2013-03-26 18:14:13 -05:00
Sam Harwell 8b6c994694 Remove unnecessary field ATN.stateNumber 2013-03-26 18:14:10 -05:00
Sam Harwell 36abbda44f Create ATNType enumeration for ATN.grammarType field, use UUID instead of incrementing a version number for improved reliability across branches 2013-03-26 18:14:07 -05:00
Sam Harwell 7d52fb7ecd Add a PNG Files filter and select it by default 2013-03-07 15:21:49 -06:00
Sam Harwell 5fdb01499d Handle the overwrite confirmation by overriding JFileChooser.approveSelection 2013-03-07 15:21:18 -06:00
Bart Kiers c62dfdaa69 Expanded PNG export functionality. 2013-03-07 21:09:51 +01:00
Terence Parr 347375ec04 Move "png" button to the right of "OK", refactor export action to its own method 2013-03-06 15:20:30 -06:00
Sam Harwell 82a00104f6 Fix formatting problems in pull request 2013-03-06 15:15:32 -06:00
Bart Kiers 39f58b95ae Added a export-to-PNG button in the dialog that is launched after invoking org.antlr.v4.runtime.misc.TestRig with the "-gui" parameter. When pressed, a PNG file of the parse tree is created in the present working directory. 2013-03-06 21:05:19 +01:00
Sam Harwell e0e6e0a94c Specify locale for all format operations (fixes #158) 2013-03-06 11:26:38 -06:00
Sam Harwell fef6dd2885 Allow direct calls to left-recursive rules (fixes #161) 2013-03-06 10:48:42 -06:00
Sam Harwell 03f8d3772f Fix comparison with IntStream.EOF 2013-02-26 11:09:24 -06:00
Terence Parr b372d4d88d add TODOs and fix a -1 to be a constant. 2013-02-23 14:03:20 -08:00
Sam Harwell 53f147bb18 Clarify type widening casts 2013-02-22 14:10:17 -06:00
Sam Harwell bb36baeb21 Add a non-null default source Pair for CommonToken 2013-02-22 14:10:15 -06:00
Sam Harwell 1789e1685b Pair and Triple are immutable, and Triple is not a Pair 2013-02-22 14:09:29 -06:00
Sam Harwell 3d59e47fb4 Remove unnecessary method Utils.replace (already exists as String.replace) 2013-02-22 14:08:51 -06:00
Terence Parr c46bce3251 rm bad comment. 2013-02-18 10:27:58 -08:00
Sam Harwell adf80e166a Fix IntervalSet.add when multiple merges are required 2013-02-05 13:11:49 -06:00
Dave Parfitt ee0dc0542a don't call process() if args aren't specified 2013-01-29 11:34:29 -05:00
Sam Harwell e1cce61400 Development line is now 4.0.1 2013-01-21 19:20:01 -06:00
Sam Harwell ad9bac9519 Fix diagrams for ATNState documentation 2013-01-21 13:39:53 -06:00
Sam Harwell b956a9eda1 Fix incorrect HTML excape in Javadoc code tag 2013-01-21 13:13:14 -06:00
Sam Harwell 0054cc020a Prediction context documentation including graphs 2013-01-21 13:13:12 -06:00
Sam Harwell d79bc252bc TestRig uses instance fields instead of static fields, allows reuse from other applications 2013-01-12 14:11:22 -06:00
Sam Harwell 7ae67de110 Reduce size of _serializedATN by adding 2 to each element: new representation avoids embedded values 0 and 0xFFFF which are common and have multi-byte representations in Java's modified UTF-8 2013-01-11 13:34:08 -06:00
Sam Harwell 3bfd7c3770 Add map from Java's logical fonts to postscript font names 2013-01-10 15:02:17 -06:00
Sam Harwell f19059d6b5 Calculate font metrics from the system 2013-01-10 15:02:11 -06:00
Sam Harwell d1ba09f1f7 Clarify number of allowed transitions leaving a state 2013-01-05 14:34:16 -06:00
Sam Harwell 93f7a448e7 Add graphs describing ATNState relations 2013-01-05 05:47:15 -06:00
Sam Harwell d95cdab065 Updated documentation in PredictionMode 2013-01-03 04:03:34 -06:00
Sam Harwell 4010c599ba Clarify the impact of configurations in rule stop states on the parser prediction termination algorithm 2013-01-03 02:46:24 -06:00
Sam Harwell 2b2114c3ae Javadoc formatting, clarification, and links 2013-01-03 02:45:09 -06:00
Sam Harwell 90c234895a Added javadocs for recently added methods 2013-01-03 02:44:39 -06:00
Sam Harwell 6c23a96046 Always update ATNConfigSet.hasSemanticContext and ATNConfigSet.dipsIntoOuterContext when adding configurations to the set; remove unnecessary manual updates 2013-01-03 02:41:02 -06:00
Sam Harwell 4754ef993a Simplify similar code paths 2013-01-02 13:46:00 -06:00
Sam Harwell 51437b7eed Fix handling of rule stop states in full context mode 2013-01-02 13:45:59 -06:00
Sam Harwell 1f4f850765 Remove unnecessary null checks 2013-01-02 13:45:58 -06:00
Sam Harwell 43c5dd0a67 Handle potential null value 2013-01-02 13:45:57 -06:00
Sam Harwell 0b7a0a4c4b Add several additional checks to verifyATN 2013-01-02 13:45:55 -06:00
Sam Harwell 6a9a6f7e50 Extract checkCondition helper method 2013-01-02 13:45:54 -06:00
Sam Harwell 21ac9a3ebe ATNSimulator.stateFactory sets the ruleIndex (required), not the stateNumber (it's overwritten in ATN.addState) 2013-01-02 12:50:57 -06:00
Sam Harwell a5e0c47be5 Formatting: no space after cast 2013-01-02 12:49:12 -06:00
Sam Harwell fbfa61c3dd Remove tree parser reference 2013-01-02 12:48:58 -06:00
Sam Harwell 4040dc0d6d After consuming EOF, only configurations in a RuleStopState are viable 2013-01-02 09:03:14 -06:00
Sam Harwell b34ad624bc No need to continue SLL prediction if every configuration is at a RuleStopState 2013-01-02 09:02:23 -06:00
Sam Harwell 2080be8a14 Cannot call IntStream.consume after EOF is reached 2013-01-02 08:30:25 -06:00
Sam Harwell 8c92df27c6 Fix javadoc issues 2013-01-02 06:55:38 -06:00
Sam Harwell 131c26edc0 Add @NotNull annotation 2013-01-02 06:41:24 -06:00
Sam Harwell 673dce5664 Add private constructor for Trees 2013-01-02 06:41:23 -06:00
Sam Harwell 8839d6b185 Remove unused/commented methods 2013-01-02 06:41:22 -06:00
Sam Harwell 112810db28 Documentation updates 2013-01-02 06:41:20 -06:00
Sam Harwell 5d390b4a90 Need to shutdown the ExecutorService or the application will stay open 2012-12-29 00:16:59 -06:00
Terence Parr 29fd6a0c16 improved javadoc output 2012-12-24 12:13:31 -08:00
Sam Harwell b7e5cbd7f5 Use Arrays.copyOf 2012-12-20 16:55:56 -06:00
Sam Harwell 1894017eb7 Switch on result of getStateType 2012-12-20 16:55:18 -06:00
Sam Harwell f3f8b425c3 Reference IntStream.EOF directly 2012-12-20 16:55:16 -06:00
Sam Harwell 6a5f609797 Add Utils.waitForClose 2012-12-18 18:15:21 -06:00
Sam Harwell 62531d2ea1 RuleContext.inspect returns Future<JDialog> to provide the created dialog 2012-12-18 18:15:06 -06:00
Sam Harwell 3b82dd9e24 inspect and save work with a list of rule names (no need to pass the Parser instance) 2012-12-18 18:13:32 -06:00
Sam Harwell 50822b6ca5 Updated NetBeans configuration 2012-12-18 17:59:01 -06:00
Sam Harwell 29be5523ff Update documentation 2012-12-17 22:09:52 -06:00
Sam Harwell 068075f1c4 Fix usage of BufferedTokenStream: cannot consume EOF 2012-12-17 22:09:50 -06:00
Sam Harwell 4832425848 Update BufferedTokenStream implementation to match IntStream interface: consume throws IllegalStateException if LA(1)==EOF 2012-12-17 22:09:47 -06:00
Sam Harwell a64cdc8e2d Make sure reportAttemptingFullContext occurs with input index at the expected location 2012-12-17 13:57:17 -06:00
Sam Harwell 9ec75650e3 Optimize ATNState.getStateType 2012-12-17 13:20:47 -06:00
Sam Harwell 225cd78d50 Update code formatting for easier debugging 2012-12-15 12:09:03 -06:00
Sam Harwell 9a8d0f06f7 Implement Array2DHashSet.retainAll and Array2DHashSet.removeAll 2012-12-15 12:09:01 -06:00
Sam Harwell aea4c89c04 Update documentation and comments 2012-12-15 12:09:00 -06:00
Sam Harwell 0b71671cda Optimized Array2DHashSet.expand 2012-12-15 12:08:58 -06:00
Sam Harwell e37f5d2c20 Need to resize array if the one provided doesn't have enough room 2012-12-15 12:08:57 -06:00
Sam Harwell 01893f9678 Make sure to set last bucket to null after remove or you could have a memory leak 2012-12-15 12:08:55 -06:00
Sam Harwell 4e1473a6f0 Mark some methods final, remove unnecessary check for null 2012-12-15 12:08:53 -06:00
Sam Harwell 431cdbeb45 Call containsFast directly to avoid an IDE warning about calling contains with an unexpected object type 2012-12-15 12:08:51 -06:00
Sam Harwell 83483a7a49 Add containsFast and removeFast to avoid a type check when you already have an instance of T 2012-12-15 12:08:49 -06:00
Sam Harwell c157801296 Add Array2DHashSet.asElementType for casts from Object to T 2012-12-15 12:08:48 -06:00
Sam Harwell c654c1b428 Improved generics usage in Array2DHashSet 2012-12-15 12:08:46 -06:00
Sam Harwell fd62c583da ATNConfigSet.toArray returns ATNConfig[] 2012-12-15 12:08:44 -06:00
Sam Harwell b2c119002c Extract anonymous class to SetIterator inner class 2012-12-15 12:08:42 -06:00
Sam Harwell e259cea426 Array2DHashSet.toArray returns T[] 2012-12-15 12:08:41 -06:00
Sam Harwell f77cf59dbf Add Array2DHashSet.createBucket (returns T[]) and createBuckets (returns T[][]) 2012-12-15 12:08:39 -06:00
Sam Harwell 36800289a2 Rename absorb to getOrAdd 2012-12-15 12:08:37 -06:00
Sam Harwell 5d238a22c7 equals should check the argument type before attempting a cast 2012-12-15 12:08:35 -06:00
Sam Harwell 076a2dcbb9 Remove expensive method that's no longer needed 2012-12-15 12:08:34 -06:00
Sam Harwell c99703e150 Remove call to hashCode that was slowing down equals 2012-12-15 12:08:32 -06:00
Sam Harwell c009c5081d Add AbstractConfigHashSet to consolidate default constructor parameters 2012-12-15 12:08:30 -06:00
Sam Harwell 0504334d08 Add missing @Override annotations 2012-12-14 09:42:02 -06:00
Sam Harwell 05b0f645ef Reduce and/or operations on multiple precedence predicates to a single predicate 2012-12-12 09:46:05 -06:00
Sam Harwell c0668a9cae Merge remote-tracking branch 'antlr/master' into precedence-predicates 2012-12-12 09:42:17 -06:00
Sam Harwell 9b75ea79f9 Automatically reduce SemanticContext.AND/SemanticContext.OR with a single operand to the operand itself 2012-12-12 09:35:54 -06:00
Sam Harwell e5e4402ea9 Merge remote branch 'sharwell/array-opt' with master 2012-12-12 09:28:55 -06:00
Sam Harwell 0e91700678 Stronger argument checks for ATN state and transition factory methods 2012-12-07 11:16:04 -06:00
Sam Harwell 8df31df66c Add int RuleTransition.precedence 2012-12-06 13:56:12 -06:00
Sam Harwell c556b821f6 Add boolean RuleStartState.isPrecedenceRule 2012-12-06 13:56:11 -06:00
Sam Harwell c44ae39ae5 Evaluate precedence predicates using a special PrecedencePredicateTransition 2012-12-06 13:56:03 -06:00
Sam Harwell 9d3c763470 Add ATNSimulator.SERIALIZED_VERSION, resolved antlr/antlr4#95 2012-12-06 13:07:32 -06:00
Sam Harwell 64a4114850 Make debug fields compile-time constants to improve release runtime performance 2012-12-06 13:07:29 -06:00
Sam Harwell 886baaf773 Use separate lists in the serialized ATN for non-greedy states (cleaner, allows ATNs with twice as many states), resolves antlr/antlr4#96 2012-12-06 13:07:11 -06:00
Sam Harwell b2ab7ab5ac Rename master artifact to antlr4-master 2012-12-04 12:57:56 -06:00
Sam Harwell 380d3dadde Create a ParseTreeVisitor interface, rename current abstract base class to AbstractParseTreeVisitor 2012-12-02 17:57:28 -06:00
Terence Parr cda9afdf55 update license everywhere. 2012-12-02 12:58:02 -08:00
Terence Parr 9e3907d573 tokens now have token and char source to draw from. fix and close antlr/antlr4#88 2012-12-01 17:23:50 -08:00
Terence Parr fc79752748 Merge branch 'master' of github.com:antlr/antlr4 2012-12-01 14:38:33 -08:00
Terence Parr 7049972ab7 escape [\r\n\t] in lexical error messages. Fixes antlr/antlr4#75 2012-12-01 14:36:59 -08:00
Sam Harwell 8a3298e075 Configure the maven-compiler-plugin in the parent POM, including the use of a bootstrap classpath to build a Java 6-compatible jar even when Java 7 is used to build it 2012-11-30 12:28:39 -06:00
Sam Harwell af76d3294e Configure the maven-source-plugin and maven-javadoc-plugin in the parent POM 2012-11-30 12:26:25 -06:00
Sam Harwell f264609453 Updated POMs for deploying to sonotype 2012-11-27 23:34:36 -06:00
Sam Harwell d68f75067d Updated library and plugin references 2012-11-26 20:24:35 -06:00
Sam Harwell 5b4809deb6 Include source and javadoc jars in maven builds 2012-11-26 20:21:38 -06:00
Sam Harwell 769e0a418e Updated javadoc 2012-11-26 20:19:09 -06:00
Sam Harwell 6369097630 Remove unnecessary dependency on ST4 2012-11-26 20:14:58 -06:00
Sam Harwell 90f4452dc4 Remove unused method TerminalNodeImpl.isErrorNode 2012-11-26 09:16:30 -06:00
Sam Harwell 6421e312a4 Remove the RuleContext.hashCode, equals, conflictsWith, and suffix methods since they produce unexpected behavior for ParserRuleContext and are no longer used for adaptivePredict 2012-11-26 02:24:16 -06:00
Sam Harwell cd5192dd1a Remove inherited and default properties from POMs 2012-11-23 13:46:13 -06:00
Sam Harwell 85f01bcce2 Updated module display names in POMs 2012-11-23 13:37:36 -06:00
Sam Harwell 121044d3b9 Remove inherited property from POMs 2012-11-23 13:36:27 -06:00
Sam Harwell 94803fa9f7 Specify parent POMs 2012-11-23 13:28:52 -06:00
Sam Harwell f3ca54d350 Separate the EqualityComparator interface from the Set and Map implementations that need it 2012-11-21 19:30:41 -06:00
Sam Harwell 094f40c961 Remove unused field 2012-11-21 17:13:20 -06:00
Terence Parr fc7977e0d9 rename method 2012-11-20 15:09:27 -08:00
Sam Harwell aba4034051 Evaluate preds in SLL before falling back to full context, avoid full context prediction if unique alternative results 2012-11-18 14:16:28 -06:00
Sam Harwell 691532190c Extract method ParserATNSimulator.predicateDFAState 2012-11-18 14:15:16 -06:00
Terence Parr e366f00820 small improvement in error msg 2012-11-17 16:09:12 -08:00
Terence Parr a438c11734 Merge branch 'visitors' of git://github.com/sharwell/antlr4 2012-11-15 13:00:48 -08:00
Terence Parr ab5c9ede09 Merge branch 'set-interpreter' of git://github.com/sharwell/antlr4 2012-11-15 12:58:50 -08:00
Terence Parr a69ccb3c70 Merge branch 'token-stream-bugs' of git://github.com/sharwell/antlr4 2012-11-15 12:55:32 -08:00
Terence Parr b83a6bbeb0 Merge branch 'recognizer-local-state' of github.com:sharwell/antlr4 2012-11-14 17:07:42 -08:00
Terence Parr e1c8957192 rm two a.equals(a) bugs 2012-11-14 16:59:15 -08:00
Sam Harwell 18f5354d1b Merge branch 'master' into token-stream-bugs 2012-11-14 15:07:33 -06:00
Sam Harwell 3a7a4907aa Merge branch 'master' into set-interpreter 2012-11-14 14:45:50 -06:00
Sam Harwell 92ae0f0fa6 Merge branch 'recognizer-local-state' 2012-11-14 14:40:56 -06:00
Sam Harwell d66962e860 Make ParseTreeVisitor more extensible, updated documentation 2012-11-14 13:07:02 -06:00
Terence Parr 61ed3bc019 Revert "Simplify Parser.getExpectedTokens and DefaultErrorStrategy.getErrorRecoverySet"
This reverts commit d33172dce5.
2012-11-04 17:02:41 -08:00
Terence Parr e5c2dfaac4 Kill box in tree dialog box makes dialog dispose of itself 2012-11-04 15:47:00 -08:00
Sam Harwell d33172dce5 Simplify Parser.getExpectedTokens and DefaultErrorStrategy.getErrorRecoverySet 2012-11-04 13:35:10 -06:00
Sam Harwell a70479ad0c Fix ParserATNSimulator handling of EOF and rule stop states 2012-11-04 13:35:09 -06:00
Sam Harwell 68b9798d6f LL1Analyzer adds EOF to expected tokens set if closure reaches end of start rule. 2012-11-04 13:35:09 -06:00
Sam Harwell b917c01bba Fix lexer error recovery could try to consume EOF 2012-11-04 11:30:03 -06:00
Terence Parr 0c3ce2860e Merge branch 'lexer-eof' of github.com:sharwell/antlr4 2012-11-03 17:52:27 -07:00
Terence Parr 4480634f13 do exact LL ambigs for -diagnostics 2012-11-03 17:35:57 -07:00
Terence Parr d1795d205f Revert "add option -exact-ambiguities to TestRig"
This reverts commit 400b58d4a0.
2012-11-03 17:34:34 -07:00
Terence Parr 400b58d4a0 add option -exact-ambiguities to TestRig 2012-11-03 16:40:23 -07:00
Sam Harwell 28e29e39dc Remove code to explicitly add EOF transitions to rule stop states with no outgoing edges 2012-11-03 15:47:23 -05:00
Sam Harwell fbaac8194b Avoid calling consume() at EOF 2012-11-03 15:47:22 -05:00
Sam Harwell c9890e8305 Throw IllegalStateException if the user tries to consume EOF 2012-11-03 15:47:22 -05:00
Terence Parr a9d4aeab71 no ? extends on rule ctx getters. 2012-11-03 08:57:49 -07:00
Sam Harwell a828b99b59 Pass -Xlint -Xlint:-serial to javac (Maven build of runtime) 2012-11-01 18:11:35 -05:00
Sam Harwell d220f90d3b Remove generics from all runtime code which did not use them to provide type safety 2012-11-01 18:07:12 -05:00
Sam Harwell 3470978749 Updated naming conventions since RuleContext stores invoking states but PredictionContext stores return states 2012-11-01 13:47:44 -05:00
Sam Harwell c2722b127a Store return states instead of invoking states in PredictionContext instances 2012-11-01 13:35:55 -05:00
Sam Harwell 7bbc6c18be Remove unchecked casts 2012-11-01 08:58:00 -05:00
Sam Harwell ca38320d43 Simplify ATNConfigSet.toArray 2012-11-01 08:49:14 -05:00
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