当前位置: 首页 > 知识库问答 >
问题:

Java:如何使用语法编写翻译程序

公冶子安
2023-03-14

我试图写一个翻译,将内缀转换为前缀。我知道语法,并阅读了“编译器原理,技术,

我不要求整个代码,我只需要一个例子,一个链接或任何东西来理解我应该如何做(不使用数组,动态数组,堆栈和任何在数据结构中教授的东西)。

在书中他们用这种方式将内缀转换为后缀

import java.io.*;
class Parser {
    static int lookahead;
    
    public Parser() throws IOException {
        lookahead = System.in.read();
    }
    
    void expr() throws IOException {
        term();
        while(true) {
            if (lookahead == '+'){
                match('+'); term(); System.out.write('+');
                
            }
            else if ( lookahead == '-') {
                match('-'); term(); System.out.write('-');
            
                
            }
            else return;
        }
    }
    void term() throws IOException {
        if ( Character.isDigit((char)lookahead )) {
            System.out.write((char)lookahead); match(lookahead);
        }
        else throw new Error("Syntax Error");
    }
    
    void match(int t) throws IOException {
        if(lookahead == t) lookahead = System.in.read();
        else throw new Error("Syntax Error");
    }    
}

 class Postfix {
    public static void main(String[] arges) throws IOException{
        Parser parse = new Parser();
        parse.expr(); System.out.write('\n');
        
    }
}

共有1个答案

汪天宇
2023-03-14

您可以查看此软件包:

编译生成器Coco/R

他们有一个Java版本。

 类似资料:
  • 问题内容: 我无法使javac识别我要扩展其类的外部.jar文件。我在同一目录中有两个文件:TestConsole.java和acm.jar。我正在使用以下命令从同一目录进行编译: 但是似乎javac只是忽略了acm.jar。它给了我错误: 当然,acm.program是acm.jar中的一个包。acm.jar中的所有类均已编译;我只想在我的课程中使用它们,而不是编译它们。 我究竟做错了什么? 我

  • 我不是在问AffineTransform是如何工作的,而是如何使用它的翻译方法。 我多次阅读API,但仍然不明白它是如何工作的。 公共空转换(双tx,双ty) 将此转换与翻译转换连接起来。这相当于调用concatenate(T),其中T是由以下矩阵表示的AffineTransform: 问题:

  • 似乎默认情况下,Clang采用了GNU汇编程序语法。 如何用Clang编译一个汇编文件使用ARM语法像this(指令)和this(指令)?

  • 将java分类为以结尾是否在语法上正确;在大多数文档中,java类语法不以结尾; 然而,我成功地编译了以下代码, 我的问题是,用

  • 当我打f5我得到这个文本在调试窗口 javac版本展示 java版本 我试图编译的代码 路径、JAVA_HOME和JRE_HOME设置正确。调试已安装的加载项。我可以编译和运行相同的代码在InteliJ IDEA或使用java(文件),javac(文件),它会工作正常,但我不知道为什么它不工作在vscode.

  • 我正在使用wpml翻译我正在构建的wordpress站点。我已经创建了一个自定义主题,正在使用wp_get_archives()在博客部分显示归档。当我切换到网站的法语部分时,日期不会被翻译。wordpress不会自动拥有自己的翻译文件吗?