小编ANT*_*ter的帖子

解析注释行

鉴于以下基本语法,我想了解如何处理注释行.缺少的是处理<CR><LF>通常会终止注释行 - 唯一的例外是EOF之前的最后一条注释行,例如:

# comment
abcd := 12 ;
# comment eof without <CR><LF>
Run Code Online (Sandbox Code Playgroud)


grammar CommentLine1a;

//==========================================================
// Options
//==========================================================



//==========================================================
// Lexer Rules
//==========================================================

Int
  : Digit+
  ;

fragment Digit
  : '0'..'9'
  ;

ID_NoDigitStart
  : ( 'a'..'z' | 'A'..'Z' ) ('a'..'z' | 'A'..'Z' | Digit )*
  ;

Whitespace
  : ( ' ' | '\t' | '\r' | '\n' )+ { $channel = HIDDEN ; }
  ; 


//==========================================================
// Parser Rules
//==========================================================

code
  : ( assignment | comment …
Run Code Online (Sandbox Code Playgroud)

grammar comments antlr line

9
推荐指数
1
解决办法
9215
查看次数

ANTLR @header,@ parser,superClass选项和基本文件io(Java)

我想在基本文件io(Java)中使用解析器操作,例如在ANTLR语法中使用PrintWriter.我必须使用superClass选项还是可以使用@header?在这两种情况下,我如何声明PrintWriter对象以及如何处理异常?

java antlr superclass

6
推荐指数
1
解决办法
5547
查看次数

用不完整的语法进行解析

有没有任何常见的解决方案如何使用不完整的语法?在我的情况下,我只想检测Delphi(Pascal)文件中的方法,这意味着proceduresfunctions.以下第一次尝试正在进行中

    methods
      : ( procedure | function | . )+
      ;
Run Code Online (Sandbox Code Playgroud)

但这是一个解决方案吗?还有更好的解决方案吗?是否可以通过动作停止解析(例如,在检测之后implementation).使用预处理器是否有意义?什么时候 - 如何?

grammar parsing antlr antlrworks parser-generator

5
推荐指数
1
解决办法
865
查看次数