如何在 JavaCC 上编写 TXT 文件



>我需要在JavaCC上使用令牌的语法编写一个文件TXT

示例:(我的代码。

PARSER_BEGIN(ExaF)
import java.io.*;
public class ExaF
{
    public static void main( String[] args )throws ParseException
    {
        try
        {
            ExaF analizador = new ExaF( System.in ) ;
            An.Prog();
            System.out.println("nn All Ok"); 
        }
        catch(ParseException e)
        {
            System.out.println(e.getMessage());
            System.out.println("nn Problem...");
        }
    }
}
PARSER_END(ExaF)
TOKEN:
{
      <GAT: "#" >   {System.out.print("00 ");}
    | <FIN: ";" >   {System.out.print("01 ");}
    | <LLA: "{" >   {System.out.print("02 ");}
    | <LLC: "}" >   {System.out.print("03 ");}
}

但我需要这样一些:

TOKEN:
{
      <GAT: "#" >   {tex.write("00 ");}
    | <FIN: ";" >   {tex.write("01 ");}
    | <LLA: "{" >   {tex.write("02 ");}
    | <LLC: "}" >   {tex.write("03 ");}
}

我尝试。。。

PrintStream stext;
stext = new PrintStream(new File("3S.txt"));
stext.print("00 ");

和。。。

File sfile=new File("3S.txt");
FileWriter texto = new FileWriter(sfile,true);
texto.write("00 ");
texto.close();

有什么想法吗???JavaCC 说:

javac:821:错误:找不到 simbol stext.print("00");

由于 stext 在令牌管理器中使用,因此您应该按如下方式声明它

TOKEN_MGR_DECLS: {
 PrintStream stext = new PrintStream(new File("3S.txt"));
}

完成此操作后,您将能够在令牌操作中使用 stext。 有关详细信息,请参阅 https://javacc.java.net/doc/javaccgrm.html#prod12 中的文档。

相关内容

  • 没有找到相关文章

最新更新