コード例 #1
0
 public override void Visit(IdExpressionNode node)
 {
     CSharpString.Append(node.Id + "_");
     node.IdOperations?.ForEach(x => {
         x.Accept(this);
     });
 }
コード例 #2
0
 public override void Visit(IdExpressionNode node)
 {
     Console.Write(node.Id);
     node.IdOperations?.ForEach(x => {
         Console.Write(".");
         x.Accept(this);
     });
 }
コード例 #3
0
 /// <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");
     }
 }
コード例 #4
0
 /// <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);
 }
コード例 #5
0
 internal abstract void Visit(IdExpressionNode node);
コード例 #6
0
ファイル: Visitor.cs プロジェクト: AsBeeb/P4-FastPrototyping
 public abstract void Visit(IdExpressionNode node);