mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-01 08:48:49 +00:00
Previously, we had a special ASTNode for class members, "MemberDeclaration", which only represented fields. This commit removes MemberDeclaration and instead uses regular Declaration nodes for representing the members of a class. This means that we can now also parse methods, inner-classes, and other declarations that appear inside of a class.
41 lines
890 B
Text
41 lines
890 B
Text
TranslationUnit[1:0->12:0]
|
|
StructOrClassDeclaration[1:7->7:0]
|
|
MyStruct
|
|
VariableDeclaration[3:4->4:4]
|
|
Type[3:4->3:8]
|
|
int
|
|
x
|
|
VariableDeclaration[4:4->5:0]
|
|
Pointer[4:12->4:14]
|
|
Type[4:4->4:12]
|
|
s
|
|
next
|
|
FunctionDeclaration[7:0->12:0]
|
|
Type[7:0->7:4]
|
|
int
|
|
foo
|
|
(
|
|
)
|
|
FunctionDefinition[8:0->12:0]
|
|
{
|
|
VariableDeclaration[9:4->9:14]
|
|
Type[9:4->9:13]
|
|
MyStruct
|
|
s
|
|
FunctionCall[10:4->10:23]
|
|
Name[10:4->10:10]
|
|
printf
|
|
StringLiteral[10:11->10:16]
|
|
"%d\n"
|
|
MemberExpression[10:19->10:22]
|
|
Name[10:19->10:20]
|
|
s
|
|
Identifier[10:21->10:21]
|
|
x
|
|
ReturnStatement[11:4->11:14]
|
|
MemberExpression[11:11->11:14]
|
|
Name[11:11->11:12]
|
|
s
|
|
Identifier[11:13->11:13]
|
|
x
|
|
}
|