コード例 #1
0
        public object VisitProgram(AST.Program program, object o)
        {
            DefineSTD();

            program.Declarations.ForEach(item => item.Visit(this, null));

            //call start function
            Emit(Machine.CALLop, 0, Machine.CBr, program.StartDeclaration.FunctionDeclaration.Address.Offset);

            Emit(Machine.HALTop, 0, 0, 0);
            return(null);
        }
コード例 #2
0
ファイル: Checker.cs プロジェクト: Laegas/CMC
        public object VisitProgram(AST.Program program, object o)
        {
            DeclareSTD();

            program.Declarations.ForEach(item => item.Visit(this, null));

            if (idTable.StartFunction == null)
            {
                throw new Exception("Program must have a start function");
            }
            else
            {
                program.StartDeclaration = idTable.StartFunction;
            }

            return(null);
        }
コード例 #3
0
 public void Encode(AST.Program p)
 {
     p.Visit(this, null);
 }