이전에 생성 된 AST 트리에서 심볼 테이블을 작성하는 방법과 관련하여 javacc 인터프리터를 만드는 방법에 대해 상당히 혼란스러워졌습니다. 이 AST에서이 같은JavaCC 인터프리터 (AST to Symbol Table)
이뭔가 :
> Program
> Id
> Id
> Id
> VarDecl
> Type
> Id
> Stl
> Id
> NewInt
> IntLit
> Sta
> Id
> IntLit
> ParseArgs
> Id
> IntLit
> Sta
> Id
> IntLit
> ParseArgs
> Id
> IntLit
(…)
이 테이블
=== Symbol table ===
Name Type Init Values
---- ---- ---- ------
args args[] true 2 12 8
x int[] true 2 4 0
이 입력으로 예를 들어 내가 지금 무엇을 가지고 만 AST를 생성
class gcd {
public static void main(String[] args) {
int[] x;
x = new int[2];
x[0] = Integer.parseInt(args[0]);
x[1] = Integer.parseInt(args[1]);
if (x[0] == 0)
System.out.println(x[1]);
else
while (x[1] > 0) {
if (x[0] > x[1])
x[0] = x[0] - x[1];
else
x[1] = x[1] - x[0];
}
System.out.println(x[0]);
}
}
.
내 큰 문제는 트리에서 유형을 정의하고 하나씩 비교하는 방법입니다.
이론을 포함하여 도움이 될 것입니다.
감사합니다.