public override void Visit(MainClassDeclNode node)
 {
     ClassBeingVisited = Analysis.Environment.Classes.Lookup(node.classIdentifier.name);
     MethodBeingVisited = ClassBeingVisited.Methods.Add("main");
     ParameterDefinition parameterDefinition = MethodBeingVisited.Parameters.Add("args");
     parameterDefinition.ParameterType = Analysis.Environment.Classes.Lookup("String").ClassType;
 }
예제 #2
0
 public virtual void Visit(MainClassDeclNode node)
 {
     ClassBeingVisited = Analysis.Environment.Classes.Lookup(node.classIdentifier.name);
     MethodBeingVisited = ClassBeingVisited.Methods.Lookup("main");
     node.classIdentifier.Accept(this);
     node.mainParameterIdentifier.Accept(this);
     node.statement.Accept(this);
 }
예제 #3
0
 public override void Visit(MainClassDeclNode node)
 {
     GenText("asm_main:");
     ClassBeingVisited = Analysis.Environment.Classes.Lookup(node.classIdentifier.name);
     MethodBeingVisited = ClassBeingVisited.Methods.Lookup("main");
     node.classIdentifier.Accept(this);
     node.mainParameterIdentifier.Accept(this);
     node.statement.Accept(this);
     Gen("ret", "", "", "Retrun from asm_main");
 }
 public override void Visit(MainClassDeclNode node)
 {
 }
예제 #5
0
 public ProgramNode(MainClassDeclNode mainNode, ClassDeclListNode classListNode, int lineNumber)
 {
     this.mainClassDecl = mainNode;
     this.classDeclList = classListNode;
     this.lineNumber = lineNumber;
 }
 public override void Visit(MainClassDeclNode node)
 {
     ClassBeingVisited = Analysis.Environment.Classes.Lookup(node.classIdentifier.name);
     ClassBeingVisited.SizeInBytes = 0;
 }
 public override void Visit(MainClassDeclNode node)
 {
     ClassBeingVisited = Analysis.Environment.Classes.Add(node.classIdentifier.name);
 }
예제 #8
0
 public ProgramNode(MainClassDeclNode mainNode, ClassDeclListNode classListNode, int lineNumber)
 {
     this.mainClassDecl = mainNode;
     this.classDeclList = classListNode;
     this.lineNumber    = lineNumber;
 }
예제 #9
0
 public override void Visit(MainClassDeclNode node)
 {
     Console.WriteLine(this.indentation + "Class <Identifier: " + node.classIdentifier.name + ">          ---- Main Class ---");
     indentation = indentation + "   ";
     Console.WriteLine(this.indentation + "public override static main          ---- Main Method ----");
     indentation = indentation + "   ";
     Console.WriteLine(this.indentation + "returns void");
     Console.WriteLine(this.indentation + "Parameter <Identifier: " + node.mainParameterIdentifier.name + ">");
     indentation = indentation + "   ";
     Console.WriteLine(this.indentation + "Type: String[]");
     indentation = indentation.Substring(0, indentation.Length - 3);
     node.statement.Accept(this);
     indentation = indentation.Substring(0, indentation.Length - 6);
 }