Commit Graph

1334 Commits

Author SHA1 Message Date
Sam Harwell 58cc8f28d7 Added links to documentation 2014-01-23 07:12:52 -06:00
Sam Harwell aba1178c49 Formatted documentation 2014-01-23 07:12:42 -06:00
Sam Harwell d5b269b6b6 Updated documentation 2014-01-22 21:30:26 -06:00
Sam Harwell 608c6a8a3a Update several usages of @NotNull and @Nullable based on warnings from NullUsageProcessor 2014-01-21 21:08:11 -06:00
Sam Harwell 937c627b16 Move NotNull and Nullable annotations to their own artifact 2014-01-21 14:31:29 -06:00
Sam Harwell eb3b84fa7d Improved formatting of PredictionContext reference hash code algorithm 2014-01-19 22:06:25 -06:00
Sam Harwell 8d37254859 Allow customizing the path to dot (GraphViz) 2014-01-19 21:33:05 -06:00
Sam Harwell f544da5f93 Fix label color for arrows in PredictionContext graphics 2014-01-19 21:32:42 -06:00
Sam Harwell 4507c1a270 Fix many errors reported by -Xdoclint 2014-01-19 21:03:07 -06:00
Sam Harwell a55901bc0d We are working on the 4.2 release 2014-01-19 13:43:57 -06:00
Sam Harwell 214b715107 Restrict lexer action execution to actions defined in the root lexer rule that matches a token 2014-01-18 16:06:12 -06:00
Sam Harwell b3d3235614 Updated documentation for behavior of AbstractParseTreeVisitor.visitChildren (see #304) 2014-01-16 16:09:58 -06:00
Sam Harwell 77fce95c22 Fix XPath implementation throwing exception 2014-01-16 15:47:34 -06:00
Sam Harwell 657d496d71 Prevent XPath from returning the same node multiple times (fixes #370) 2014-01-15 14:32:34 -06:00
Terence Parr 3c51f7ad7b Add tests for ungrammatical tree patterns. Fixes #413 2014-01-15 11:15:31 -08:00
Sam Harwell 224bb0e9c0 Actually support all supported legacy ATN UUIDs (fixes #410) 2014-01-15 07:55:07 -06:00
Sam Harwell 5e9b869f1d Updated lexer to support encoding commands in the ATN and interpreting them with LexerInterpreter 2014-01-14 20:17:37 -06:00
Sam Harwell 715fe67fce Fix ANTLRInputStream cannot seek to end of input 2014-01-14 20:09:50 -06:00
Sam Harwell 6934495853 Fixed documentation link 2014-01-14 20:06:05 -06:00
Terence Parr f4e5b23baf Merge pull request #405 from parrt/lexer-interp
Lexer interp
2014-01-14 18:05:22 -08:00
Terence Parr 8f3c01fb3b check for empty tree list. 2014-01-14 19:27:09 -06:00
Terence Parr f4967ff488 make sure we create an interpreter that knows its recognizer 2014-01-14 13:03:58 -06:00
Terence Parr 1246b58b0e factor out setting of root so that external tools can reset the tree to get new display. Also allow setting of ruleNames list externally. 2014-01-14 12:44:05 -06:00
Terence Parr 40f0540d8a make public for use for plugins 2014-01-14 12:36:36 -06:00
Sam Harwell e75beb69b1 Add the StarLoopEntryState.precedenceRuleDecision field so the information can be shared between ParserATNSimulator and ParserInterpreter 2014-01-11 16:27:27 -06:00
Sam Harwell bef086e874 Updated precedence DFA documentation 2014-01-09 20:32:44 -06:00
Sam Harwell 266f7276d1 Initial implementation of a "precedence DFA" (fixes #400) 2014-01-09 18:11:17 -06:00
Sam Harwell 9432bfb746 Do not cache the results of a failed predicate evaluation in the DFA (fixes #398) 2014-01-09 06:52:13 -06:00
Terence Parr 2d7b0b4178 intellij git missed these files 2013-12-20 12:47:58 -08:00
Terence Parr 8c5d088eb7 Merge pull request #378 from sharwell/polish
Tree patterns polish
2013-12-19 17:24:42 -08:00
Sam Harwell a2ba59d0ac Use ATNDeserializer methods instead of deprecated ATNSimulator methods 2013-12-19 19:07:25 -06:00
Sam Harwell fb1880d82c Move ATNSerializer to runtime 2013-12-19 19:07:24 -06:00
Sam Harwell 7f15889d92 Make utility methods in ATNDeserializer static 2013-12-19 19:07:22 -06:00
Sam Harwell 5710eff8f8 Fix small warnings in XPath 2013-12-19 19:06:24 -06:00
Sam Harwell 8449b9258f Updated documentation and API encapsulation for tree patterns 2013-12-19 19:06:23 -06:00
Sam Harwell 40bbd66231 Updated documentation for Token and TokenSource 2013-12-19 19:06:22 -06:00
Sam Harwell 2a9a716c53 Remove unnecessary methods ParseTreeMatch.getText() and failed() (use getTree().getText() and !succeeded() instead) 2013-12-19 19:06:22 -06:00
Sam Harwell 72675075cf Remove unnecessary testing constructor 2013-12-19 19:06:21 -06:00
Sam Harwell 45fd53bf2c Remove unused method Lexer.nextTokenOrRuleToken 2013-12-19 19:06:20 -06:00
Sam Harwell 75b8174dc8 Clean up the result caching for getTokenTypeMap and getRuleIndexMap 2013-12-19 19:06:20 -06:00
Sam Harwell df61690758 Clean up the caching of ATN instances with bypass alternatives 2013-12-19 19:06:19 -06:00
Terence Parr 4b5cb78716 convert toMap usage to parser method calls 2013-11-25 09:40:05 -08:00
Terence Parr bd91dc166d add getTokenTypeMap(), getRuleIndexMap() to recognizer. Gen new fields for that an ATN with bypass alts. Then methods for that: getATNWithBypassAlts(). Big changes to interface for ParseTreeMatch; create Parser.compileParseTreePattern() method. Convert rule names to rule indexes. 2013-11-24 14:04:46 -08:00
Terence Parr 4c52a103e1 cleanup 2013-11-22 11:31:59 -08:00
Terence Parr b2ec85d14d updated comments, cleaned up the API, made helper routines. 2013-11-22 11:08:16 -08:00
Terence Parr 168bce79d3 working on api 2013-11-22 09:55:40 -08:00
Terence Parr 49c4a5ec12 fix labeling, add comments 2013-11-21 16:37:57 -08:00
Terence Parr 1e83557819 reorg to pass round a match object in matches_() 2013-11-21 10:30:37 -08:00
Terence Parr 4a46e1a679 rm dup code 2013-11-21 09:52:54 -08:00
Terence Parr 4cbe197a63 we can't use a lexer interpreter because it does not execute skip actions. I duplicate the lexer and use that 2013-11-21 09:50:16 -08:00
Terence Parr 68b9a7b414 cleanup dead code 2013-11-21 09:35:18 -08:00
Terence Parr e68757717f pass a lexer and a parser to the tree pattern match or instead of the classes. 2013-11-21 09:32:45 -08:00
Terence Parr 599896cf1b throw exception not null 2013-11-21 09:02:53 -08:00
Terence Parr 33d11709df Revert "fix comment"
This reverts commit e8f577e162.
2013-11-21 08:42:28 -08:00
Terence Parr e8f577e162 fix comment 2013-11-21 08:42:02 -08:00
Terence Parr 40789babf5 got tree pattern matching working on my test cases using a parser interpreter not been generated parser to compile patterns like "<ID> = <expr>;". It uses Sam's alteration to the ATN to have bypass alternatives for <expr> tags. 2013-11-20 17:54:57 -08:00
Terence Parr 2394b38995 added state to be consistent with enterRule(); most importantly, we need to set the state when we enter a recursive rule, which we are not doing at the moment. This was not a problem before because we never could directly call a recursive rule and the outer rule set the current state. Now that we are using recursive rules as start rules, we need to set the state. 2013-11-20 17:53:51 -08:00
Terence Parr 2791dd5619 Merge branch 'master' into tree-patterns 2013-11-20 16:57:16 -08:00
Terence Parr 0a314ddd49 merge upstream 2013-11-20 16:56:38 -08:00
Terence Parr 1c71d05074 Merge branch 'master' into tree-patterns 2013-11-20 16:49:27 -08:00
Terence Parr cc07f8faec mv to runtime. was ref'ing v3 not v4 Token. 2013-11-20 16:47:17 -08:00
Terence Parr 42cdf244eb stash 2013-11-20 16:42:28 -08:00
Terence Parr 48ce1f1809 Support getting the serialized ATN from a recognizer 2013-11-20 16:22:01 -08:00
Terence Parr d09510a936 Merge branch 'master' into tree-patterns 2013-11-20 16:09:36 -08:00
Terence Parr 127d9bce3c add comments to Chunk 2013-11-20 16:08:51 -08:00
Terence Parr 3439df0fb0 rm unneeded class 2013-11-20 15:57:50 -08:00
Terence Parr 92a32606cf rm unused lexer 2013-11-20 14:04:40 -08:00
Terence Parr 889c831e1f rm wildcard code 2013-11-20 14:02:06 -08:00
Sam Harwell 0981a397b5 Add option to generate rule bypass transitions during ATN deserialization 2013-11-20 09:14:25 -06:00
Sam Harwell c4c2546fc9 Add the "verifyATN" deserialization option 2013-11-20 09:14:24 -06:00
Sam Harwell affbe51077 Add ATNDeserializationOptions class 2013-11-20 09:14:24 -06:00
Sam Harwell b447256f20 Extract ATN deserialization to a new class ATNDeserializer 2013-11-20 09:14:18 -06:00
Terence Parr f99cc52d39 rm any/all pattern 2013-11-19 09:19:32 -08:00
Terence Parr 2f902da3d2 pull master into branch 2013-11-14 14:43:50 -08:00
Sam Harwell 3309c9d85e Fix build warnings 2013-11-14 15:36:01 -06:00
Sam Harwell 10cd96f809 Generate code for XPathLexer during the build 2013-11-14 15:35:43 -06:00
Terence Parr ab931e4449 Merge pull request #97 from sharwell/precedence-predicates
Precedence predicates
2013-11-14 11:54:55 -08:00
Sam Harwell 2b5f1c14a1 Add deprecated methods to preserve backwards compatibility 2013-11-14 13:37:24 -06:00
Terence Parr b26926570d move getChildren() from Tree into Trees 2013-11-13 16:18:50 -08:00
Sam Harwell 7e3711aca2 Preserve backwards compatibility for grammars generated with versions of the tool prior to adding precedence predicates 2013-10-10 21:10:11 -05:00
Sam Harwell b14ca56441 Merge branch 'master' into precedence-predicates 2013-10-10 20:36:38 -05:00
Terence Parr 9cd32f36b4 remove comment and package spec from grammar 2013-09-17 17:13:10 -07:00
Terence Parr 8aeb90ef82 mv findAll to XPath; rm old test in playground. 2013-09-16 14:56:35 -07:00
Terence Parr 6b1cef745c rm unneeded getChildren 2013-09-16 14:50:13 -07:00
Terence Parr 004f47174b rm comment 2013-09-13 13:57:20 -07:00
Terence Parr 01082414c3 rebuilt XPath using ANTLR itself; added error handling; added ! operator 2013-09-13 13:53:42 -07:00
Terence Parr a86895c557 prototype xpath 2013-09-12 17:22:02 -07:00
Terence Parr 211f69d0f1 simplify 2013-09-12 17:12:54 -07:00
Terence Parr 09ddded3ed cleaned up test rig. more tests. fix bugs. 2013-09-11 17:49:25 -07:00
Terence Parr 088cd4a9bc got test rig start. added support test rig stuff to exec parser. add findAll to ParseTree interface. 2013-09-11 14:59:53 -07:00
Terence Parr 3fda64f85b got a draft implementation 2013-09-11 11:25:07 -07:00
Terence Parr 8237952cbb stash 2013-09-10 20:11:01 -07:00
Terence Parr 20d8545e3d stash 2013-09-10 19:51:11 -07:00
Terence Parr 913cda0721 adding more xpath expr types 2013-09-10 19:48:36 -07:00
Terence Parr 76418c2b9b refine getChildren() method to narrow return type. 2013-09-10 17:43:25 -07:00
Terence Parr cbd6e17925 oops; need method: add getChildren() method to Tree. 2013-09-10 17:37:20 -07:00
Terence Parr 00fa2c7617 add getChildren() method to Tree. 2013-09-10 17:34:24 -07:00
Terence Parr d505a393ef tweak 2013-09-10 15:14:53 -07:00
Terence Parr d2caae46a7 working on xpath 2013-09-10 14:55:40 -07:00
Terence Parr 145aeb955d initial add of xpath stuff 2013-09-10 13:18:47 -07:00
Terence Parr 76b4eef60a more unit tests; add <.> 2013-09-09 17:26:16 -07:00
Terence Parr 95aa103dc2 matches text now if not <ID> node 2013-09-09 15:13:37 -07:00
Terence Parr f995e47443 rm ruletag from ParserRuleContext; back to (expr <expr>) for tag in pattern 2013-09-09 14:54:44 -07:00
Terence Parr 94d3c71b02 rm unneeded IF check 2013-09-09 14:47:02 -07:00
Terence Parr 90187039f0 foo 2013-09-09 14:45:46 -07:00
Terence Parr 0df4411ea7 got optimized tree back with <expr> as single node 2013-09-09 13:50:33 -07:00
Terence Parr 7ead36fb4b fix error handling to just match <expr> as token under expr RuleNode 2013-09-08 19:10:04 -07:00
Terence Parr cfac804b57 fix error handling to just match <expr> as token under expr RuleNode 2013-09-08 18:56:07 -07:00
Terence Parr b1c4c77d28 tweak 2013-09-05 17:16:43 -07:00
Terence Parr 754348605d create match object for matching 2013-09-05 16:58:37 -07:00
Terence Parr 4b87f84b99 got decent test rig 2013-09-04 17:09:14 -07:00
Terence Parr 731b0f6528 damn intellij 2013-09-04 14:51:04 -07:00
Terence Parr 531c31861a got basic pattern compilation going 2013-09-04 14:48:21 -07:00
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