ladybird/Userland/Libraries/LibCpp/Tests/struct.ast
Itamar dcdb0c7035 LibCpp: Support non-field class members
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.
2021-06-09 22:26:46 +02:00

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
}