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
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