我正在阅读有关AST(抽象语法树)的信息,但是我看到的所有示例都使用如下表达式:
a + b * c
可以用像这样的语法来表示:
(+ a (* b c) )
等效于:
+
/ \
a *
/ \
b c
我的问题是OOPL中的类的AST看起来如何?
我的幼稚尝试是针对此Java代码:
class Person {
String name;
int age;
public String toString() {
return "name";
}
}
是:
;Hand written
(classDeclaration Person
(varDeclaration String name)
(varDeclaration int age )
(funcDeclaration String toString
(return "name")
)
)
但是我不太确定我离真正的AST表示有多远。
是否取决于我选择的语言。需要多少细节?那些“ xyzDeclaraction”是否需要或可能为:
(Person (String name) (int age))
在哪里可以看到实际编程语言的“真实”表示,以了解更多信息。
慕田峪7331174
相关分类