コード例 #1
0
ファイル: eval_visitor.py プロジェクト: supertask/UnitX
    def visitUnitSingleOrPairOperator(self, ctx):
        """
        """
        if ctx.start.type == UnitXLexer.AT: return Unit()
        if ctx.unitOperator(i=1):
            unit = Unit()
            numer_tokens = self.visitUnitOperator(ctx.unitOperator(i=0))
            denom_tokens = self.visitUnitOperator(ctx.unitOperator(i=1))

            if len(numer_tokens) == 2: unit.ex_numer, unit.numer = numer_tokens[0].text, numer_tokens[1].text
            else: unit.numer = numer_tokens[0].text
            if len(denom_tokens) == 2: unit.ex_denom, unit.denom = denom_tokens[0].text, denom_tokens[1].text
            else: unit.denom = denom_tokens[0].text
            return unit

        else:
            unit = Unit()
            numer_tokens = self.visitUnitOperator(ctx.unitOperator(i=0))

            if len(numer_tokens) == 2: unit.ex_numer, unit.numer = numer_tokens[0].text, numer_tokens[1].text
            else: unit.numer = numer_tokens[0].text
            return unit