使用JavaCC生成文件解析器

问题描述 投票:0回答:1

我是JavaCC的初学者,我正在尝试生成文件解析器。

我已经能够生成成功的解析器,该解析器可以穿透在键盘上输入的一行。当我输入“ First Name:William”键盘的解析器示例时,我设法在屏幕上显示了变量的名称和值。

现在我有一个.txt文件,其中包含大量名称和它们的值,我想在屏幕上成功显示它们。

下面是我已经编写的.jj文件,用于生成键入行的解析器

现在我想要相同的内容,但是要保存一个文件。

options
{
  static = true;
}

PARSER_BEGIN(parser_name)

public class parser_name
{
  public static void main(String args []) throws ParseException
  {
    System.out.println("Waiting for the Input:");
    parser_name parser = new parser_name(System.in);
    parser.Start();
  }
}

PARSER_END(parser_name)

SKIP :
{
  " "
| "\r"
| "\t"
| "\n"
}


TOKEN : { < DIGIT : (["0"-"9"])+ > }

TOKEN : { <VARIABLE: (["a"-"z", "A"-"Z"])+> }

TOKEN : { <VALUE: (~["\n",":"])+> }

TOKEN : { <ASSIGNMENT: ":"> }


void Start(): { Token t,t1,t2;}
{
    t=<VARIABLE>
    t1=<ASSIGNMENT>
    t2=<VALUE>
    { System.out.println("The Variable is "+t.image+",and the Value is "+t2.image); }
}

我已经尝试用文件类型的对象替换解析器构造函数中的“ System.in”,然后逐行读取该文件,但是它不起作用。

javacc
1个回答
0
投票

将阅读器传递给解析器的构造函数。

© www.soinside.com 2019 - 2024. All rights reserved.