Ejemplo n.º 1
0
        public override string VisitProgram(PascalProgramNode program)
        {
            // var zero = new ScopedSymbolTable(program.ProgramName);
            // PascalSemanticAnalyzer.DefineBuiltIns(zero);
            //CurrentScope = zero;
            var block = "{\r\n";

            indentLevel++;
            current = program.Annotations["SymbolTable"] as ScopedSymbolTable;
            block  += VisitBlock(program.Block);
            current = current.ParentScope;
            indentLevel--;
            block += "}\r\n";
            var assems = "";

            foreach (var s in _assembliesCalled)
            {
                assems += s + "\r\n";
            }

            var str = $"{assems}public static class {program.ProgramName}\r\n{block}\r\n";

            return(str.Trim());
        }
Ejemplo n.º 2
0
 public virtual T VisitProgram(PascalProgramNode program)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 3
0
 public string VisitProgram(PascalProgramNode program)
 {
     throw new NotImplementedException();
 }