Eth*_*ein 6 c# parsing antlr antlr4 visual-studio-2015
我(现在)尝试使用ANTLR4和C#来设计一种语言,到目前为止,我一直在努力摆弄它.在这个过程中,我决定尝试创建一个简单的数学表达式求值器.在这个过程中,我为它创建了以下ANTLR语法:
grammar Calculator;
@parser::members
{
protected const int EOF = Eof;
}
@lexer::members
{
protected const int EOF = EOF;
protected const int HIDDEN = Hidden;
}
program : expr+ ;
expr : expr op=('*' | '/') expr
| expr op=('+' | '-') expr
| INT
| '(' expression ')'
;
INT : [0-9]+ ;
MUL : '*' ;
DIV : '/' ;
ADD : '+' ;
SUB : '-' ;
WS : (' ' | '\r' | '\n') -> channel(HIDDEN) ;
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此命令从中生成C#代码时:
Run Code Online (Sandbox Code Playgroud)java -jar C:\...\antlr-4.2-complete.jar -DLanguage=CSharp .\...\Grammar.g4
我得到这些奇怪的错误:
Run Code Online (Sandbox Code Playgroud)error(50): C:\Users\Ethan\Documents\Visual Studio 2015\Projects\CypressLang\CypressLang\Source\.\Grammar\CypressGrammar.g4:1:0: syntax error: 'ï' came as a complete surprise to me error(50): C:\Users\Ethan\Documents\Visual Studio 2015\Projects\CypressLang\CypressLang\Source\.\Grammar\CypressGrammar.g4:1:1: syntax error: '»' came as a complete surprise to me error(50): C:\Users\Ethan\Documents\Visual Studio 2015\Projects\CypressLang\CypressLang\Source\.\Grammar\CypressGrammar.g4:1:2: syntax error: '¿' came as a complete surprise to me error(50): C:\Users\Ethan\Documents\Visual Studio 2015\Projects\CypressLang\CypressLang\Source\.\Grammar\CypressGrammar.g4:1:3: syntax error: mismatched input 'grammar' expecting SEMI
可能导致这些错误的原因,我该如何解决?我现在最好的猜测是Visual Studio将奇怪的字符插入到文件的开头,我无法删除它们.
今天不是个好日子。
Visual Studio 决定惹恼我并将我的所有文件的文件格式更改为 UTF-8。我需要做的就是转到File > Advanced Save Settings
,并将编码更改为 US-ASCII。这删除了开头插入的奇数字符,并解决了(大部分)我的问题。
归档时间: |
|
查看次数: |
206 次 |
最近记录: |