用于匹配文件名的Antlr规则

时间:2016-06-19 02:14:03

标签: antlr

我正在寻找一种在Antlr中匹配文件名的好方法。

文件名可以是DOS或Unix风格。

如果你有一个很好的解决方案,请随意忽略这个问题的其余部分,因为这只是我尝试解决问题的新手,我可能会离开。我把它包括在内是因为有些人喜欢看示例代码。

为了讨论的目的,这里有一个我正在思考的问题。这不是我的实际语法,因为我对此讨论感兴趣的是文件名解析,因此我减少了在该上下文中有意义的样本。

Lexer.g4:

lexer grammar Lexer;
K_COPY : C O P Y ;

FILEPATH: [-.a-zA-Z0-9:/\]+;

Parser.g4

parser grammar Parser;
options { tokenVocab=Lexer; }

commandfile: (statement NEWLINE)* EOF;

statement : copy_stmt  
      ;

copy_stmt: K_COPY left=filepath right=filepath
     ;

// Add characters as we make rules as to what characters are valid:
filepath: FILEPATH;

这就是我的想法,但我是Antlr的新手所以我想在继续之前得到一些反馈。

我正在使用Antlr这个项目已经决定,这个项目的很大一部分已经在Antlr中工作,所以我只是在寻找基于Antlr的解决方案。

0 个答案:

没有答案
相关问题