public override void Visit(IdExpressionNode node) { CSharpString.Append(node.Id + "_"); node.IdOperations?.ForEach(x => { x.Accept(this); }); }
public override void Visit(IdExpressionNode node) { Console.Write(node.Id); node.IdOperations?.ForEach(x => { Console.Write("."); x.Accept(this); }); }
/// <summary> /// Generates code for an ID expression node /// </summary> /// <param name="idExpression">The node to generate code for</param> private void GenerateCodeForIdExpression(IdExpressionNode idExpression) { Debugger.Write("Generating code for ID Expression"); if (idExpression.Identifier.Declaration is IEntityDeclarationNode entityDeclaration) { code.AddInstruction(entityDeclaration.RuntimeEntity.GenerateInstructionToLoad()); } else { Debugger.Write("The identifier is not a constant or variable and you should have picked this problem up during type checking"); } }
/// <summary> /// Carries out identification on an ID expression node /// </summary> /// <param name="idExpression">The node to perform identification on</param> private void PerformIdentificationOnIdExpression(IdExpressionNode idExpression) { PerformIdentification(idExpression.Identifier); }
internal abstract void Visit(IdExpressionNode node);
public abstract void Visit(IdExpressionNode node);