当前位置: 首页>>代码示例>>Python>>正文


Python Analyzer.finishProcOrFuncAR方法代码示例

本文整理汇总了Python中Analyzer.Analyzer.finishProcOrFuncAR方法的典型用法代码示例。如果您正苦于以下问题:Python Analyzer.finishProcOrFuncAR方法的具体用法?Python Analyzer.finishProcOrFuncAR怎么用?Python Analyzer.finishProcOrFuncAR使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Analyzer.Analyzer的用法示例。


在下文中一共展示了Analyzer.finishProcOrFuncAR方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Parser

# 需要导入模块: from Analyzer import Analyzer [as 别名]
# 或者: from Analyzer.Analyzer import finishProcOrFuncAR [as 别名]

#.........这里部分代码省略.........
    
    
    def variableParameterSection(self):
        if self.lookahead is 'MP_VAR':  # 24 VariableParameterSection -> "var" IdentifierList ":" Type
            self.match('MP_VAR')
            identList = []
            identList = self.identifierList();
            self.match('MP_COLON')
            varType = self.type()
            for name in identList:
                self.symbolTableStack.getCurrentTable().insertEntry(name, 'iparam', varType, '', self.firstIdFlag)
                self.firstIdFlag = False
        else:
            self.error("Var")
    
    
    def statementPart(self):
        if self.lookahead is 'MP_BEGIN':  # 25 StatementPart -> CompoundStatement
            label = self.symbolTableStack.getCurrentTable().label
            self.analyzer.genLabel(label)
            if label == 1:
                self.analyzer.initMainAR()
            self.compoundStatement()
            self.symbolTableStack.getCurrentTable().printTable()
            self.analyzer.endProcOrFunc(self.symbolTableStack.getCurrentTable())
            self.symbolTableStack.popTable()
        else:
            self.error("Begin")
        
    
    def compoundStatement(self):
        if self.lookahead is 'MP_BEGIN':  # 26 CompoundStatement -> "begin" StatementSequence "end"
            self.match('MP_BEGIN')
            self.analyzer.finishProcOrFuncAR()         
            self.statementSequence()
            self.match('MP_END')          
        else:
            self.error("begin")
    
    
    def statementSequence(self):
        if self.lookahead in ['MP_SCOLON', 'MP_IDENTIFIER',  # 27 StatementSequence -> Statement StatementTail
                              'MP_BEGIN', 'MP_END', 'MP_READ',
                              'MP_WRITE', 'MP_IF', 'MP_ELSE',
                              'MP_REPEAT', 'MP_UNTIL', 'MP_WHILE',
                              'MP_FOR', 'MP_WRITELN']:
            self.statement()
            self.statementTail()
        else:
            self.error("'MP_SCOLON', 'MP_IDENTIFIER', 'MP_BEGIN', 'MP_END', 'MP_READ',\
                            'MP_WRITE', 'MP_IF', 'MP_ELSE', 'MP_REPEAT', 'MP_UNTIL', 'MP_WHILE',\
                            'MP_FOR', 'MP_WRITELN'")
    
    
    def statementTail(self):
        if self.lookahead is 'MP_SCOLON':  # 28 StatementTail -> ";" Statement StatementTail
            self.match('MP_SCOLON')
            self.statement()
            self.statementTail()
        elif self.lookahead in ['MP_END', 'MP_UNTIL']:  # 29 StatementTail -> lambda
            return
        else:
            self.error(";, end, until")
    
    
    def statement(self):
开发者ID:agroves333,项目名称:compiler,代码行数:70,代码来源:Parser.py


注:本文中的Analyzer.Analyzer.finishProcOrFuncAR方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。