Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing Antlr4-ANTLR错误在'处缺少半成品┐;语法';找不到源文件(CSC编译器)_Parsing_Visual Studio 2012_Antlr - Fatal编程技术网

Parsing Antlr4-ANTLR错误在'处缺少半成品┐;语法';找不到源文件(CSC编译器)

Parsing Antlr4-ANTLR错误在'处缺少半成品┐;语法';找不到源文件(CSC编译器),parsing,visual-studio-2012,antlr,Parsing,Visual Studio 2012,Antlr,我在.NET target中有一个使用ANTLR的项目,当我使用ANTLR添加新项目时,它不会生成解析器,旧项目可以正常工作 grammar MyGrammar; /* * Parser Rules */ Errors: Error6 missing SEMI at '┐grammar' C:\\... 1 3 MyGrammarLib Error7 missing COLON at 'MyGrammar' while matching a rule C:\\... 1

我在.NET target中有一个使用ANTLR的项目,当我使用ANTLR添加新项目时,它不会生成解析器,旧项目可以正常工作

grammar MyGrammar;

/*
 * Parser Rules
 */

Errors:

Error6  missing SEMI at '┐grammar'  C:\\... 1   3   MyGrammarLib
Error7  missing COLON at 'MyGrammar' while matching a rule  C:\\... 1   12  MyGrammarLib
Error5  '╗' came as a complete surprise to me   C:\\... 1   2   MyGrammarLib
Error4  '´' came as a complete surprise to me   C:\\... 1    1  MyGrammarLib
当我重新启动并重建时,它无法使用ANTLR为所有LIB生成CSC,看起来我的Visual Studio 2012不再支持ANTLR语言和运行时工具重新安装ANTLR也没有帮助。 发生了什么事?

PK

确保ANTLR(或者实际上是Java运行时环境)知道文件的编码

如果它是UTF-8(带或不带),可以通过在Java命令行中指定它来实现,例如


java-Dfile.encoding=UTF-8-jar antlr-4.5-complete.jar

错误消息看起来很像文件中有,默认编码不是UTF-8。据推测,“新项目”使用BOM将文件存储为UTF-8,而“旧项目”使用不同的文件编码。如果这导致了问题,那么当在Java命令行中指定
-Dfile.encoding=UTF-8
时,它应该消失。我已将它更改为UTF-8,因为我有diacritics ITDEBUG path,它表示找不到LÖA而不是LÖA。该文件存在,g4文件的属性完整路径包含LÖA,在移动项目后,我还更改了属性工具->选项->常规->项目位置,但没有帮助。哦,不,这不是由环境选项引起的,我必须设置项目目录,但它的属性中有相对路径,那么我如何更改相对路径的编码?其他的.cs文件可以,但g4文件不能自定义:源文件:“C:\Users\…\LÖA\trunk\projectName\CoMaTion\obj\Debug\CoMaTionalParser.cs”找不到。可能它适用于Java目标,我在项目文件夹中没有jar文件,它可以等效于ANTLR4.Runtime.net45.dll。我忘了在VisualStudio中添加标签。我将改进这个问题。在VisualStudio中避免这种情况的唯一方法是清除所有的变音符号。在删除变音符号后,它就起作用了。由于.NET的新版本,我还不得不将新classLibs属性中的目标框架更改为4.5(它是4.5.2),但这是不同的章节。。。[ANTLR无法生成'org.ANTLR.v4.codegen.CSharp\u v4\u 5\u 1Target'](英文)