これがベトナム大学院の実態だ!

Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minhの大学院修士課程に社会人入学

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