Commit Graph

1270 Commits

Author SHA1 Message Date
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