https://github.com/antlr/antlr4/blob/master/doc/getting-started.md
Microsoft Windows [Version 10.0.10586]
(c) ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ (Microsoft Corporation), 2015. ΠΡΠ΅ ΠΏΡΠ°Π²Π° Π·Π°ΡΠΈΡΠ΅Π½Ρ.
> type bin\antlr4.bat
java org.antlr.v4.Tool %*
> type bin\grun.bat
java org.antlr.v4.gui.TestRig %*
> java org.antlr.v4.Tool
ANTLR Parser Generator Version 4.5.3
-o ___ specify output directory where all output is generated
-lib ___ specify location of grammars, tokens files
-atn generate rule augmented transition network diagrams
-encoding ___ specify grammar file encoding; e.g., euc-jp
-message-format ___ specify output style for messages in antlr, gnu, vs2005
-long-messages show exception details when available for errors and warnings
-listener generate parse tree listener (default)
-no-listener don't generate parse tree listener
-visitor generate parse tree visitor
-no-visitor don't generate parse tree visitor (default)
-package ___ specify a package/namespace for the generated code
-depend generate file dependencies
-D<option>=value set/override a grammar-level option
-Werror treat warnings as errors
-XdbgST launch StringTemplate visualizer on generated code
-XdbgSTWait wait for STViz to close before continuing
-Xforce-atn use the ATN simulator for all predictions
-Xlog dump lots of logging info to antlr-timestamp.log
> java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
> javac -version
javac 1.8.0_77
> type Hello.g4
// Define a grammar called Hello
grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
> echo %CLASSPATH%
C:\Users\ploskov\Documents\Javalib\antlr-4.5.3-complete.jar;C:\Users\ploskov\Documents\Javalib\antlr-runtime-4.5.3.jar
> antlr4 Hello.g4 && dir
> java org.antlr.v4.Tool Hello.g4
Π’ΠΎΠΌ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ C Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΊΠΈ.
Π‘Π΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΌΠ°: 2257-E72E
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ C:\Users\ploskov\Documents\tmp
08.04.2016 21:10 <DIR> .
08.04.2016 21:10 <DIR> ..
08.04.2016 21:07 241 Hello.g4
08.04.2016 21:10 31 Hello.tokens
08.04.2016 21:10 1Β 353 HelloBaseListener.java
08.04.2016 21:10 3Β 236 HelloLexer.java
08.04.2016 21:10 31 HelloLexer.tokens
08.04.2016 21:10 554 HelloListener.java
08.04.2016 21:10 3Β 707 HelloParser.java
7 ΡΠ°ΠΉΠ»ΠΎΠ² 9Β 153 Π±Π°ΠΉΡ
2 ΠΏΠ°ΠΏΠΎΠΊ 672Β 314Β 544Β 128 Π±Π°ΠΉΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ
> javac Hello*.java
> dir
Π’ΠΎΠΌ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ C Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΊΠΈ.
Π‘Π΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΌΠ°: 2257-E72E
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ C:\Users\ploskov\Documents\tmp
08.04.2016 21:12 <DIR> .
08.04.2016 21:12 <DIR> ..
08.04.2016 21:07 241 Hello.g4
08.04.2016 21:10 31 Hello.tokens
08.04.2016 21:12 794 HelloBaseListener.class
08.04.2016 21:10 1Β 353 HelloBaseListener.java
08.04.2016 21:12 3Β 356 HelloLexer.class
08.04.2016 21:10 3Β 236 HelloLexer.java
08.04.2016 21:10 31 HelloLexer.tokens
08.04.2016 21:12 304 HelloListener.class
08.04.2016 21:10 554 HelloListener.java
08.04.2016 21:12 869 HelloParser$RContext.class
08.04.2016 21:12 4Β 160 HelloParser.class
08.04.2016 21:10 3Β 707 HelloParser.java
12 ΡΠ°ΠΉΠ»ΠΎΠ² 18Β 636 Π±Π°ΠΉΡ
2 ΠΏΠ°ΠΏΠΎΠΊ 672Β 314Β 523Β 648 Π±Π°ΠΉΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ
> grun Hello r -tree
> java org.antlr.v4.gui.TestRig Hello r -tree
Can't load Hello as lexer or parser
What I did wrong? (without antlr-runtime-4.5.3.jar I have same behavior)
First guess would be that your current working directory (pwd
) isn't included in the CLASSPATH
variable. It's throwing a ClassNotFoundException
here, so maybe try invoking java with -cp
flag and explicitly define your path.
Right you are! Thank you!
I change .bat files and problem was solved:
@ECHO OFF
java org.antlr.v4.Tool %*
@ECHO OFF
SET TEST_CURRENT_DIR=%CLASSPATH:.;=%
if "%TEST_CURRENT_DIR%" == "%CLASSPATH%" ( SET CLASSPATH=.;%CLASSPATH% )
java org.antlr.v4.gui.TestRig %*
Is that a good solution?
If it's working, I don't see how it could be bad. :smile:
The proposed solution doesn't work. It just hangs in cmd.
I have the same problem as ghost - I try java -cp ".;C:\antlr\antlr-4.8-complete.jar grun Hello r -tree
but it just hangs.
The proposed solution doesn't work. It just hangs in cmd.
Most helpful comment
I change .bat files and problem was solved:
Is that a good solution?