Commit Graph

1728 Commits

Author SHA1 Message Date
Sam Harwell 6790b25e5b Support zero-length tokens in the lexer (fixes #688) 2014-08-28 23:45:07 -05:00
Sam Harwell 0c1178bf3a Include precedence in rule invocations when -atn is specified 2014-08-28 23:24:06 -05:00
Sam Harwell 99dd914045 Fix assignment of precedence for binary expressions with an implicit operator (e.g. testDuplicatedLeftRecursiveCall) 2014-08-28 23:23:26 -05:00
Sam Harwell a7f53ce396 Support list labels on the recursive atom in a left-recursive rule (fixes #677) 2014-08-09 11:07:15 -05:00
Sam Harwell 399a1df047 Add regression tests for #677 2014-08-09 10:55:20 -05:00
Sam Harwell 550a737acf Make sure code generation was successful before attempting to compile 2014-08-09 10:55:19 -05:00
Sam Harwell 8e69a5b99d Update CodeGenPipeline.process to check for errors before writing output files 2014-08-09 10:26:21 -05:00
Terence Parr 73d2f1f688 simplify; + node always points at loopback now. 2014-07-17 18:37:57 -07:00
Terence Parr aff865d1a7 Make the plus tree node point at loopback always. 2014-07-17 17:29:35 -07:00
Terence Parr 94c1c77652 If there is no loopentry decision, have + AST point to loopback 2014-07-16 20:59:39 -07:00
Terence Parr 2ca20e00ff Remove unneeded createATN(). 2014-07-16 20:37:15 -07:00
Terence Parr bb389782da Fixes #661. A parser rule reference within a lexer rule would get a bad error message and then an exception. Further, errors within the grammar tree visitor would go to standard error instead of to an error manager because none of the subclasses implemented getErrorManager(). Introduced an error type for this error PARSER_RULE_REF_IN_LEXER_RULE. Added to unit test. 2014-07-11 12:09:47 -07:00
Terence Parr 83411ef056 add test 2014-07-10 18:00:16 -07:00
Terence Parr 9b76e6423c refine error type 2014-07-05 19:08:31 -07:00
Terence Parr e1ba264d93 move common char encoding up to Target; same works for Python. 2014-07-03 10:54:49 -07:00
Terence Parr 07b7a4b334 I messed up the merge a bit in ErrorType. Made something into a grammar error not tool error. changed tool error back so it does not accept a token in the grammar. 2014-06-30 16:24:43 -07:00
Terence Parr d85ea0649a Merge branch 'err-msgs-upgrade'
Conflicts:
	tool/src/org/antlr/v4/tool/ErrorType.java
2014-06-30 15:59:19 -07:00
Terence Parr 1b7cdc4328 move templatesExist to Target 2014-06-30 15:38:15 -07:00
Terence Parr e3fc04bda1 put good quotes back in. rm unneeded arg to left-recur msg. 2014-06-30 15:16:20 -07:00
Terence Parr f1d782ffe1 Add convenience methods for detecting missing targets. At a few bail out points so that we don't try anything that will need code generator if we get an improper target. 2014-06-30 11:49:30 -07:00
Terence Parr f0ab9b1415 use assoc value's token. 2014-06-30 09:26:02 -07:00
Terence Parr 36425dd59c Big change to error messages themselves by removing single quotes for non input text stuff. Made cannot_find_tokens_file more specific (split it). Added offending token information to a lot of the messages. It now only prints the file name and not the full path to the file in error messages. Re-factored the ANTLRMessage hierarchy to share fields. Getting the offending token required number of methods to take different arguments. removed the default ST listener in the error manager as it is apparently unused. Cannot find imported grammar is now a grammar error not a tool error. 2014-06-29 21:39:15 -07:00
Terence Parr 4f7f8538ac add new panic() method, though not yet used. revert to java target if cannot find specified target 2014-06-29 13:02:34 -07:00
Terence Parr 2e352e2697 add unit tests for -o and -lib; improve BaseTest: refactor writeFile to Utils. -o options and others not accepted by antlr(). 2014-06-29 12:21:39 -05:00
Terence Parr a07d523c81 add comment 2014-06-29 09:43:24 -07:00
Sam Harwell 91206869c5 Prepare for next development iteration 2014-06-28 22:40:33 -05:00
Terence Parr 8937e0d16e repl space with tabs. 2014-06-28 14:56:47 -07:00
Terence Parr 4acb1091de refactor for reuse, make target check majorminor only. 2014-06-28 14:55:34 -07:00
Sam Harwell 7d88b0106a [maven-release-plugin] prepare for next development iteration 2014-06-18 21:25:44 -05:00
Sam Harwell 201eeb147d [maven-release-plugin] prepare release 4.3 2014-06-18 21:24:24 -05:00
Sam Harwell bbac283ba2 Add @since documentation to key new exposed API types/methods 2014-06-18 19:48:07 -05:00
Sam Harwell a72058bc67 Update dependency versions 2014-06-18 19:37:30 -05:00
Sam Harwell 3378be9c79 Update all version numbers for consistency prior to the 4.3 release 2014-06-18 19:37:29 -05:00
Sam Harwell 6949e832d9 Updated comments to clarify recent changes in code 2014-06-18 19:12:26 -05:00
Sam Harwell 7b88a6dbeb Update the assignment of Tool.VERSION (fixes #634)
* Reference RuntimeMetaData.VERSION so there are fewer version numbers to update during a release
* Assign the value in a static initializer so it's not a compile-time constant
2014-06-18 17:43:47 -05:00
Sam Harwell fab3a83107 Remove ability to reference enclosing rule by name, in favor of always using $ctx (fixes #571) 2014-06-16 18:06:09 -05:00
Terence Parr 91752af88d Merge pull request #623 from parrt/fix-set-subtract
getMinElement now supports values < 0.  Checked and shouldn't affect any...
2014-06-16 12:41:50 -07:00
Sam Harwell 2920ad0d1a * Updated documentation for IntSet
* Reimplemented IntervalSet.subtract and IntervalSet.complement to operate over the complete range of supported values
* Expanded several methods in IntervalSet to operate on any IntSet
* Mark COMPLETE_CHAR_SET and EMPTY_SET as read-only
2014-06-16 14:23:52 -05:00
Terence Parr 0575c59fc6 Merge pull request #629 from sharwell/fix-542
Consistent handling of element options applied to alternatives
2014-06-16 10:44:35 -07:00
Sam Harwell 6eeafacb88 Consistent handling of element options applied to alternatives (fixes #542) 2014-06-16 12:41:31 -05:00
Sam Harwell a812c32a22 Support multiple epsilon elements at the end of a left-recursive rule alternative (fixes #625) 2014-06-16 12:08:56 -05:00
Sam Harwell 9cbf473195 Add regression tests for #625 2014-06-16 12:08:56 -05:00
Terence Parr 51430018d0 getMinElement now supports values < 0. Checked and shouldn't affect any uses. subtract() from set with EOF, wiped out all negative values. added tests. 2014-06-14 13:14:32 -07:00
Terence Parr 633d4e2e19 Merge pull request #620 from sharwell/fix-543
Fix documentation comments generated for labeled alternatives
2014-06-10 16:45:21 -07:00
Terence Parr 662ef9bfac Merge pull request #619 from sharwell/sempred
Updated documentation and add argument validation assertion for SemPred
2014-06-10 16:44:23 -07:00
Terence Parr 63069a571d Merge pull request #618 from sharwell/fix-563
Fix cases where file encoding was not handled properly in the tool
2014-06-10 16:43:51 -07:00
Terence Parr 8abe81aaa6 Merge pull request #621 from parrt/token-names-vs-literals-fix
errors should display literal if no token name avail.
2014-06-10 16:37:33 -07:00
Sam Harwell 0c0fd67082 Merge pull request #616 from parrt/test-profiler-with-generated-code
test profiler with generated code. dump profile information using toStri...
2014-06-10 18:05:24 -05:00
Terence Parr a1c0319b41 test profiler with generated code. dump profile information using toString as dump() no longer available. 2014-06-10 18:04:12 -05:00
Terence Parr 0355f17f04 errors should display literal if no token name avail. 2014-06-10 15:47:28 -07:00
Sam Harwell 00f95b4a29 Fix documentation comments generated for labeled alternatives (fixes #543) 2014-06-10 17:34:04 -05:00
Sam Harwell 50cc4ac736 Updated documentation and add argument validation assertion for SemPred 2014-06-10 17:33:31 -05:00
Sam Harwell 156696be18 Fix cases where file encoding was not handled properly in the tool (fixes #563) 2014-06-10 17:32:59 -05:00
Terence Parr fdc46c53e6 Merge pull request #617 from sharwell/fix-588
Fix 588
2014-06-10 15:09:34 -07:00
Sam Harwell 9e7b13105d Fix optimizer incorrectly removing predicate transitions from the ATN (fixes #588) 2014-06-10 16:32:01 -05:00
Sam Harwell e4fa8f75d4 Add regression test for #588 2014-06-10 16:31:16 -05:00
Sam Harwell 58c1ad6cb8 Refactor shared load() method to BaseTest 2014-06-10 16:30:48 -05:00
Terence Parr 8447661a28 add unit test for issue 550 2014-06-10 12:10:01 -07:00
Terence Parr 358a1025d2 tweaks per Sam's comments. Just pushing straight to master. 2014-06-10 11:28:43 -07:00
ericvergnaud fa2ed459c6 Had lost some stuff 2014-06-07 00:57:13 +08:00
ericvergnaud fd9d707d95 tests granularity 2014-06-07 00:52:39 +08:00
ericvergnaud 0692334c9f unwanted format change 2014-06-07 00:13:38 +08:00
ericvergnaud bf83ee42bc Oops, removed some unwanted changes 2014-06-07 00:08:59 +08:00
ericvergnaud 00eb4f89ca Merge branch 'Improved-tests-granularity' into Preliminary-enhancements-for-Python-target 2014-06-07 00:01:13 +08:00
ericvergnaud 5778570faf warningw to be fixed separately 2014-06-06 23:54:52 +08:00
ericvergnaud 4545a8f5d0 resolved the Lexer listener/visitor issue by changing the tests grammar
using @members to @parser::members
2014-06-06 23:41:18 +08:00
ericvergnaud 33fd1804ff Merge branch 'Preliminary-enhancements-for-Python-target' into Improved-tests-granularity 2014-06-06 23:08:27 +08:00
ericvergnaud c46acf0031 cleanup after merge 2014-06-06 23:07:26 +08:00
ericvergnaud f75e15258f merged preliminary python enhancements 2014-06-06 23:02:50 +08:00
ericvergnaud 1592609e89 Improves the granularity of tests, thus helping narrow down differences
in behaviour between the reference Java target and other targets that
use the same test suite
2014-06-06 22:52:55 +08:00
ericvergnaud ff67ae5d19 Merge branch 'master' of https://github.com/antlr/antlr4 into Preliminary-enhancements-for-Python-target
Terence's implementation
2014-06-06 19:47:47 +08:00
Terence Parr 36da0daad7 no longer passing Parser/Lexer masquerading as superClass option. 2014-06-05 19:22:09 -07:00
ericvergnaud b8a91b9e3f Preliminary changes for Python 2014-06-06 03:13:09 +08:00
Terence Parr bc566605b1 Leave just one version spec in tool. Not looking externally anymore. 2014-06-04 17:23:47 -07:00
Terence Parr cc36281ce2 new definition of context sensitivity required change in test code. Updated profiler per Sam's comments. 2014-06-03 22:04:02 -07:00
Terence Parr 8d17f43f57 Merge pull request #601 from sharwell/versioning-docs
Versioning updates and documentation
2014-06-03 21:39:11 -07:00
Sam Harwell 80125d661e * Redefine checkVersion as version mismatch detection instead of a compatibility check
* Update notification behavior to notify callback listeners instead of throwing an exception
* Remove the distinction between regular and "extended" semantics
2014-06-03 18:31:52 -05:00
Sam Harwell 95596b4a52 Update ParserFactory.getLL1EBNFBlock to ensure it is correct even if additional ATN optimizations are implemented 2014-06-03 07:33:03 -05:00
Terence Parr 31a3b59576 Templates LL1PlusBlock and LL1StarBlock were not used. removed. added test for LL1OptionalBlock. 2014-06-03 07:33:00 -05:00
Sam Harwell e4e1cb1845 Updated the documentation and improved the flexibility for future use of RuntimeMetaData.checkVersion 2014-06-02 23:06:58 -05:00
Terence Parr 742429a15d make sure that previous tree node's start/stop token indexes are correct after left-recur elim. 2014-06-02 13:45:10 -05:00
Sam Harwell e7a1d84197 Fix support for element options on semantic predicates in left recursive rules (fixes #590) 2014-06-01 22:33:43 -05:00
Sam Harwell be16c71e56 Merge pull request #583 from sharwell/atn-profiler
Atn profiler
2014-06-01 22:30:39 -05:00
Terence Parr 68b186e77d Add utility methods and track token indexes through the left recursive rule transformation to allow external tools to associate ATN states and transitions with original locations in the grammar source file 2014-06-01 22:30:33 -05:00
Terence Parr e570489d33 Simplify common code in XPath tests 2014-06-01 22:29:35 -05:00
Terence Parr fb49d7c6a2 initial profiler 2014-06-01 22:15:12 -05:00
Sam Harwell 46e1bad7b4 Simplify the GrammarAST constructors, and correct the token start/stop index not being set 2014-05-31 18:14:41 -05:00
Terence Parr f3fcf5a712 Merge pull request #569 from parrt/runtime-tool-version-sync
add tool-template and generatedcode-runtime version compatibility check
2014-05-28 18:02:14 -07:00
Terence Parr 9e77e28bc1 should not be a default version lest all targets pass by default. make sure java target and tool move in lockstep. Fixes #572 2014-05-28 17:55:32 -07:00
Terence Parr 0b8a70a2a4 tweaks per Sam's comment. define default version so targets don't fail to compile. 2014-05-28 11:26:44 -07:00
Terence Parr db0830e00d To get static checking I converted the version template to a method and also moved the compatibility check into the target so that in the worst-case target developers can override the compatibility check per their needs. I have also decided to throw an exception for the Java target when the code generation and runtime library versions are incompatible. Change the tool message per Sam's request. 2014-05-28 11:14:00 -07:00
Sam Harwell 938a39c057 Qualify references to the ATN class to avoid symbol conflicts with tokens named ATN (fixes #561) 2014-05-24 16:49:38 -05:00
Sam Harwell e0937a6322 Add regression test for #561 (token named ATN breaks reference to ATN.INVALID_ALT_NUMBER) 2014-05-24 13:14:08 -05:00
Terence Parr 813fefdbb7 Fixes #554 2014-05-24 12:13:31 -05:00
Terence Parr 4aec5aeac2 add basic code generation testing rig and 1st test. 2014-05-24 12:10:47 -05:00
Terence Parr a3d4ba53a3 add tool-template and generatedcode-runtime version compatibility check. Target authors add a VERSION template and supply a RuntimeMetaData.checkVersion() method. 2014-05-19 17:25:01 -07:00
Sam Harwell 65b176a36d Return predefined values instead of null for Grammar methods getTokenNames, getTokenDisplayNames, and getRuleNames
Improve consistency of Grammar methods for names of rules and tokens
2014-04-13 18:46:28 -05:00
Sam Harwell 7e2bf4a2d5 [maven-release-plugin] prepare for next development iteration 2014-04-06 21:19:40 -05:00
Sam Harwell 736a5f5905 [maven-release-plugin] prepare release 4.2.2 2014-04-06 21:18:12 -05:00
Sam Harwell 88c7d09c24 Add unit tests for grammars with multiple EOF transitions 2014-04-06 16:23:57 -05:00
Terence Parr da9186ed63 Merge pull request #134 from parrt/eval-preds-when-delaying-errors
When delaying error reporting because prediction escapes the decision en...
2014-04-02 09:41:09 -07:00
Sam Harwell ea4676b18a adaptivePredict never returns -1; it could return ATN.INVALID_ALT_NUMBER 2014-04-01 21:26:48 -05:00
Sam Harwell 8c8d4d754e Remove incorrectly generated call to adaptivePredict
This particular call to adaptivePredict did not correctly match the decision number to the preceding setState() call. In addition, since this code is generated only for a positive closure, the only possible alternative is the one that enters the loop; error handling is deferred to the alternative(s) within the body of the closure.
2014-04-01 21:26:47 -05:00
Terence Parr 69d4b423e1 When delaying error reporting because prediction escapes the decision entry rule, we should evaluate predicates to turn off any configurations that are invalid semantically. After that, we can collect the list of alternatives that are satisfied with the input thus far and then choose the minimum as before. Fixes #529 2014-04-01 16:49:30 -07:00
Sam Harwell f34adc916a Added Grammar.undefineRule to support undefining rules prior to AST construction 2014-03-29 16:13:36 -05:00
Sam Harwell 5a56cc1147 Documented Grammar.defineRule, and updated it to return true if the rule was added to the Grammar 2014-03-29 16:13:35 -05:00
Sam Harwell 2729f176b2 Add option TestPerformance.REPORT_SECOND_STAGE_RETRY 2014-03-29 13:12:35 -05:00
Sam Harwell 5be18445cd [maven-release-plugin] prepare for next development iteration 2014-03-25 10:57:46 -05:00
Sam Harwell 943aaa5d24 [maven-release-plugin] prepare release 4.2.1 2014-03-25 10:57:44 -05:00
Sam Harwell d8efb4ad44 Updated build to use latest releases of ANTLR 3 and ST 4 2014-03-25 10:48:00 -05:00
Sam Harwell dcff40df90 Generate complete documentation with the Tool 2014-03-25 10:43:59 -05:00
Sam Harwell 85f09126e2 Don't include the annotation processor registration in the shaded (complete) jar 2014-03-24 20:43:55 -05:00
Sam Harwell 6642a9222d Merge pull request #516 from sharwell/fix-515
Fix usage of assoc=right in Java-LR.g4 (fixes #515)
2014-03-24 20:05:21 -05:00
Sam Harwell 014785b70a Fix usage of assoc=right in Java-LR.g4 (fixes #515) 2014-03-24 20:05:19 -05:00
Terence Parr b4b91970bd Merge pull request #495 from aphyr/fix-load-string-grammar-npe
BasicSemanticChecks.checkGrammarName: allow null filenames.
2014-03-24 13:20:54 -07:00
Sam Harwell ea088eb893 Add compile error 159: RESERVED_RULE_NAME (fixes #500) 2014-03-23 21:49:27 -05:00
Sam Harwell 0ed651cbc6 Add compiler warning 158: FRAGMENT_ACTION_IGNORED (fixes #472) 2014-03-23 18:02:09 -05:00
Sam Harwell 2b3ef648f8 Add compiler warning 157: UNRECOGNIZED_ASSOC_OPTION (fixes #489) 2014-03-23 17:47:40 -05:00
Sam Harwell 480544b4fe Improve wording in description of error 152 2014-03-23 16:31:46 -05:00
Sam Harwell 3e054df98b Do not process grammars following an error during parsing (fixes #507) 2014-03-23 16:31:14 -05:00
Sam Harwell 7daae3a89b Add compiler error 156: unterminated string literal (improves reporting for #507) 2014-03-23 16:30:49 -05:00
Terence Parr 794e4a0b7b Merge pull request #501 from sharwell/fix-433
Fix 433
2014-03-23 11:30:00 -07:00
Terence Parr e66f663618 Merge pull request #503 from sharwell/fix-469
Fix 469
2014-03-23 11:25:59 -07:00
Sam Harwell cb0119e761 Add regression test for issue #509 2014-03-23 11:34:36 -05:00
Sam Harwell 6fc77cd88d Add regression test for #469 2014-03-20 09:20:31 -05:00
Sam Harwell f1692591cc Updated RuleFunction.addContextGetters to support multiple alternatives with the same label (fixes #433) 2014-03-20 08:35:18 -05:00
Sam Harwell 3c70fea32a Add regression test for issue #433 2014-03-20 08:35:17 -05:00
Kyle Kingsbury a74005972d BasicSemanticChecks.checkGrammarName: allow null filenames.
checkGrammarName assumes that all grammars come from actual files, but
grammars loaded using Tool.parseGrammarFromString use input streams
without source file names. This patch changes checkGrammarName to only verify
that grammar names and file names correspond when a file name is
available.
2014-03-18 16:54:43 -07:00
Sam Harwell d498292680 Add regression test for issue #461 (interpreter starting with LR rule) 2014-02-06 20:46:32 -06:00
Sam Harwell 06ab99d16d [maven-release-plugin] prepare for next development iteration 2014-02-04 17:19:12 -06:00
Sam Harwell 5e05b71e8b [maven-release-plugin] prepare release 4.2 2014-02-04 17:19:11 -06:00
Sam Harwell 8ef0f590bb Updated build to include annotation processor in shaded Tool jar 2014-02-04 17:18:48 -06:00
Sam Harwell 2eb6f45bd9 Fix generated code Javadoc incompatible with Java 8 2014-01-26 11:49:20 -06:00
Sam Harwell e63f95268f Update javac options during testing to address overly verbose warnings 2014-01-23 07:25:41 -06:00
Sam Harwell 0f25d1c4cf Merge pull request #436 from sharwell/fix-test-output
Fix test failure due to change error message text
2014-01-21 19:18:53 -08:00
Sam Harwell ef5b6eb34e Fix test failure due to change error message text 2014-01-21 21:17:17 -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 b6f6c99c3c Updated documentation for ErrorType 2014-01-19 21:00:56 -06:00
Sam Harwell a55901bc0d We are working on the 4.2 release 2014-01-19 13:43:57 -06:00
Terence Parr 9b85e9c636 Merge pull request #426 from sharwell/fix-175
Support grammar files encoded with UTF-8 with a byte order mark
2014-01-17 10:22:47 -08:00
Sam Harwell 14107cc40a Add regression test for expression performance (closes #192) 2014-01-17 08:54:43 -06:00
Sam Harwell da0864a2f8 Support grammar files encoded with UTF-8 with a byte order mark (fixes #175) 2014-01-17 08:37:49 -06:00
Sam Harwell 664d66d937 Fix incorrect combineMax implementation (fixes #299) 2014-01-16 20:35:03 -06:00
Sam Harwell 9889de87ac Add regression test highlighting issue #299 2014-01-16 20:35:03 -06:00
Sam Harwell 85a923f61e Fix IndexOutOfBoundsException when using ANTLR with Java 8 (fixes #337) 2014-01-16 17:13:18 -06:00
Sam Harwell dbfb230b11 Cleaner output in TestPerformance when checksum calculation is disabled 2014-01-16 16:11:21 -06:00
Sam Harwell f2966aaa80 Improve support for m2e (Maven/Eclipse integration) (fixes #319) 2014-01-16 15:44:12 -06:00
Sam Harwell 4fc32e1f7c Fix options not getting properly applied to extracted lexer in combined grammar (fixes #372) 2014-01-16 10:34:55 -06:00
Sam Harwell 05b8c22833 Syntax errors while lexing stop grammar compilation process (fixes #308) 2014-01-15 21:39:19 -06:00
Sam Harwell 511c60fe7b Merge pull request #417 from sharwell/fix-370
Fix 370
2014-01-15 12:33:11 -08:00