AST testing
This commit is contained in:
@@ -256,10 +256,11 @@ var
|
||||
newIdent: IIdentifierNode;
|
||||
isBoxed: Boolean;
|
||||
begin
|
||||
if not IsValidIdentifier(Node.Identifier.Name) then
|
||||
raise Exception.CreateFmt('Invalid identifier name: "%s".', [Node.Identifier.Name]);
|
||||
var identifier := Node.Target.AsIdentifier;
|
||||
if not IsValidIdentifier(identifier.Name) then
|
||||
raise Exception.CreateFmt('Invalid identifier name: "%s".', [identifier.Name]);
|
||||
|
||||
slot := FCurrentBuilder.Define(Node.Identifier.Name);
|
||||
slot := FCurrentBuilder.Define(identifier.Name);
|
||||
addr := TResolvedAddress.Create(akLocalOrParent, 0, slot);
|
||||
|
||||
if Assigned(Node.Initializer) then
|
||||
@@ -267,7 +268,7 @@ begin
|
||||
else
|
||||
newInit := nil;
|
||||
|
||||
newIdent := TAst.Identifier(Node.Identifier.Name, addr, TTypes.Unknown);
|
||||
newIdent := TAst.Identifier(identifier.Name, addr, TTypes.Unknown);
|
||||
isBoxed := (FBoxedDeclarations <> nil) and FBoxedDeclarations.Contains(Node);
|
||||
|
||||
Result := TAst.VarDecl(newIdent, newInit, TTypes.Unknown, isBoxed);
|
||||
@@ -281,7 +282,7 @@ var
|
||||
newIdent: IAstNode;
|
||||
newValue: IAstNode;
|
||||
begin
|
||||
newIdent := Accept(Node.Identifier);
|
||||
newIdent := Accept(Node.Target);
|
||||
newValue := Accept(Node.Value);
|
||||
|
||||
Result := TAst.Assign(newIdent.AsIdentifier, newValue, TTypes.Unknown);
|
||||
|
||||
Reference in New Issue
Block a user