Nguyên lý ngôn ngữ lập trình assignment2
2回目となるassignmentは、前回の宿題であるassignment1ができたことを前提とし、ASTを作るというもの。
2年前はそのassignment1ができなかったため以後2,3,4全部ができなかった。
今回は少なくともassignment1はできたので、assignment2もできることを期待したい。
一応出だしはこれでエラーはなかった。
from MCVisitor import MCVisitor from MCParser import MCParser from AST import * class ASTGeneration(MCVisitor): def visitProgram(self,ctx:MCParser.ProgramContext): return Program(self.visit(ctx.decls())) def visitDecls(self,ctx:MCParser.DeclsContext): result = [self.visit(ctx.decl())] if ctx.getChildCount() == 2: result += self.visit(ctx.decls()) return result def visitDecl(self,ctx:MCParser.DeclContext): # cau2を参考に if (ctx.vardecl()): return "Global Hensuu" # assignment2の原文を参考に elif (ctx.funcdecl()): return "Kansuu" else: return 999