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()); }
public virtual T VisitProgram(PascalProgramNode program) { throw new NotImplementedException(); }
public string VisitProgram(PascalProgramNode program) { throw new NotImplementedException(); }