zoukankan      html  css  js  c++  java
  • mac antrl4环境安装&第一个程序

    $ cd /usr/local/lib
    $ sudo curl -O https://www.antlr.org/download/antlr-4.7.2-complete.jar
     
    // 设置环境变量
    $ vim .bash_profile  
    $ export CLASSPATH=".:/usr/local/lib/antlr-4.7.2-complete.jar:$CLASSPATH"
    $ alias antlr4='java -jar /usr/local/lib/antlr-4.7.2-complete.jar'
    $ alias grun='java org.antlr.v4.gui.TestRig'
    $ wq!  // 保存
    $ source .bash_profile  
     
    // 测试,以下则成功:
    $ antlr4
    ANTLR Parser Generator  Version 4.7.2
     -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
     -Xexact-output-dir  all output goes into -o dir regardless of paths/package
    

      第一个测试程序:

    $ mkdir test
    $ cd test/
    $ vim 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
     
    $ wq! // 保存
    $ antlr4 Hello.g4
    $ ls
    Hello.g4		HelloBaseListener.java	HelloLexer.tokens
    Hello.interp		HelloLexer.interp	HelloListener.java
    Hello.tokens		HelloLexer.java		HelloParser.java
     
    $ javac Hello*.java
    $ ls
    Hello.g4			HelloLexer.java
    Hello.interp			HelloLexer.tokens
    Hello.tokens			HelloListener.class
    HelloBaseListener.class		HelloListener.java
    HelloBaseListener.java		HelloParser$RContext.class
    HelloLexer.class		HelloParser.class
    HelloLexer.interp		HelloParser.java
     
    $ grun Hello r -gui  // 按回车
    hello test  // 输入这个,再按回车
    ^D // 按ctrl+D 就出现gui图形界面了
     
     
     
    

      

    本文来自博客园,作者:ReluStarry,转载请注明原文链接:https://www.cnblogs.com/relustarry/p/15609158.html

  • 相关阅读:
    mac下更改MySQL的默认编码
    pycharm使用gitlab输错密码解决办法
    Django中form组件的is_valid校验机制
    装饰器整理
    粘包
    MySQL常见数据库引擎及对比
    jtag、在线仿真器
    《如何高效学习》-整体性学习策略
    keil5到iar8的使用配置迁移
    Python3学习(1)——初步了解
  • 原文地址:https://www.cnblogs.com/relustarry/p/15609158.html
Copyright © 2011-2022 走看看