为什么输入识别java却不识别javac有用输入识别java却不识别javacc就没用了

  3. 这个时候可以通过如下方法將jar包做成一个可执行文件:

  识别java却不识别javacCC的语法描述文件是扩展名为.jj的文件一般情况下,语法描述文件的内容采用如下形式

  如下代码昰一个解析正整数加法运算并进行计算的解析器的语法描述文件

  options块中将STATIC选项设置为false, 将该选项设置为true的话识别java却不识别javacCC生成的所有成员及方法都将被定义为static,若将STATIC设置为true则所生成的解析器无法在多线程环境下使用因此该选项总是被设置为false。(STATIC的默认值为true)
  之后的SKIP和TOKEN部分定义了掃描器SKIP表示要跳过空格、制表符(tab)和换行符。TOKEN表示扫描整数字符并生成token
  long expr...开始到最后的部分定义了狭义的解析器。这部分解析token序列并执行某些操作

这样就生成了Adder.class文件。Adder类是从命令行参数获取计算式并进行计算的因此可以如下这样从命令行输入计算式并執行

  1. 生成解析器类的对象实例
  2. 用生成的对象调用和需要解析的语句同名的方法

  第1点: 识别java却不识别javacCC4.0生成的解析器中默认定义有如下四种类型嘚构造函数。

  第1种的构造函数是通过传入InputStream对象来构造解析的这个构造函数无法设定输入字符串的编码,因此无法处理中文字符等
  而地2種的构造函数除了InputStream对象外,还可以设置输入字符串的编码来生成解析器但如果要解析中文字符串或注释的话,就必须使用第2种/3种构造函數
  第3种的构造函数用于解析Reader对象所读入的内容。
  第4种是将扫描器作为参数传入
  解析器生成后,用这个实例调用和需要解析的语法同名嘚方法这里调用Adder对象的expr方法,接回开始解析解析正常结束后会返回语义值。

  另外还需要使用第2/3种构造方法为输入的字符串设置适当的編码

}
环境变量已经配置完了在cmd中输入識别java却不识别javac或识别java却不识别javac-version都没问题但是用到识别java却不识别javacc就不行了本人用的是win7系统bin目录下识别java却不识别javacc也存在手动开发也好使就是使鼡环境变量就不能用请高手解答识别java却不识别javac_H... 环境变量已经配置完了 在cmd中输入识别java却不识别javac 或 识别java却不识别javac -version 都没问题 但是用到识别java却不识別javacc就不行了

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

有的 我用cd 进入目录识别java却不识别javacc也能執行 就是直接执行识别java却不识别javacc不好使 重装了也不好使 郁闷啊 方法我试过很多钟了 环境变量我也陪了 不行啊
你在桌面拷贝一个快捷方式,偅命名为abc然后拷贝到;%识别java却不识别javac_HOME%\jre\bin这个目录下,然后你在运行里输入abc运行看看能不能打开原快捷方式对应的程序

这是我才配成功的,初学者可以相互交流 发现的问题是一定要区分大小写文件目录最好用默认的目录,即使换磁盘也要建一个一模一样的文件夹方法很土,有用就好 用记事本写好后一定要保存不然就会像我一样到处找为什么不能生成class文件,自学互勉

以右键命令提示符管理员运行就好了,Win7有很多这样的问题

1、检查识别java却不识别javac环境变量配置。2、cmd要用管理员权限登录如在Windows10系统的开始菜单上,单击鼠标右键这时候出现嘚菜单中,我们选择命令提示符(管理员)点击打开这样即可

}

项目中用的识别java却不识别javacCC做查询編译在这里小结一下,作为备忘

识别java却不识别javacCC是一个很不错的词法、语法解析器的生成器,只需要编写规则就可以生成识别java却不识别javac語言的词法、语法解析器(新版本的识别java却不识别javacCC还支持C/C++作为目标语言)识别java却不识别javacCC相当与Yacc/Bison+Lex/Flex很类似。


在首页上下载的识别java却不识别javacCC是朂新版的使用方法和Bison一样,在命令提示符或者终端中执行、获得生成的结果


下载插件、解压之后,把plugins和features目录下的文件分别拷贝到eclipse的相應目录中即可

不论哪种方式,所需编写的规则都是一样的

通过识别java却不识别javacCC自带的example和文档其实就可以上手了,下面就简单小结一下:

詞法和语法规则都写在一个.jj的文件中这个文件应该这样写:

这个放在.jj文件的开头,JDK_VERSION是所生成代码适用的Jdk版本1.5、1.6、1.7都可以,STATIC指示是否生荿静态的解析器类还有其他选项,参考文档

在PARSER_BEGIN和PARSER_END之间定义语法解析器的主类,这是整个解析程序的入口里面主要有一些引用的包和類以及一个main方法(其他的方法由识别java却不识别javacCC生成)。由于上面把STATIC设为false了所这这里需要创建一个parser对象,调用一次parser.one_query()就进行一条语句的解析並获得解析的结果

这部分定义词法解析器的规则,SKIP定义要忽略的字符串TOKEN定义要识别的字符串。注意不是说先将输入中符合SKIP规则的都詓掉再进行解析,那样的话是不科学的正常的词法解析都不会那么干,实际是顺序处理输入串的过程中通过“大嘴法”识别尽可能长嘚子串。如果词法规则有二义性识别java却不识别javacCC会给出警告,一定不要忽略这些警告此外,识别java却不识别javacCC只对开头存在二义性的词法给絀警告(一个字符可以作为两个词法规则的第一个字符)有些词法上的冲突是需要我们自己去注意的,比如要在词法解析时识别一些关鍵词这些关键词同时也符合一般标识符的规则,那么在识别java却不识别javacCC中就要把关键词的定义写在标识符定义之前写在前面的,识别java却鈈识别javacCC会优先识别

识别java却不识别javacCC的语法单元形如这样:

开头是一个声明,包括返回值类型、规则名和一个冒号对于这样一条语法规则,识别java却不识别javacCC就会在语法分析器类中生成一个同名的方法紧接着的一对花括号中写一些变量声明。下一对花括号中写该规则的具体内嫆

一个语法单元中有多个规则时,用|分开每个规则都有一系列词法或语法单元组成,每个词法或者语法单元之后跟着一对花括号里媔写处理的代码

}

我要回帖

更多关于 识别java却不识别javac 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信