def parse(self, scope):
assert (len(self.tokens) == <NUM_LIT:3>)<EOL>expr = self.process(self.tokens, scope)<EOL>A, O, B = [<EOL>e[<NUM_LIT:0>] if isinstance(e, tuple) else e for e in expr<EOL>if str(e).strip()<EOL>]<EOL>try:<EOL><INDENT>a, ua = utility.analyze_number(A, '<STR_LIT>')<EOL>b, ub = utility.analyze_number(B, '<STR_LIT>')<EOL><DEDENT>except SyntaxError:<EOL><INDENT>return '<STR_LIT:U+0020>'.join([str(A), str(O), str(B)])<EOL><DEDENT>if (a is False or b is False):<EOL><INDENT>return '<STR_LIT:U+0020>'.join([str(A), str(O), str(B)])<EOL><DEDENT>if ua == '<STR_LIT>' or ub == '<STR_LIT>':<EOL><INDENT>return color.Color().process((A, O, B))<EOL><DEDENT>if a == <NUM_LIT:0> and O == '<STR_LIT:/>':<EOL><INDENT>return '<STR_LIT>'.join([str(A), str(O), str(B), '<STR_LIT:U+0020>'])<EOL><DEDENT>out = self.operate(a, b, O)<EOL>if isinstance(out, bool):<EOL><INDENT>return out<EOL><DEDENT>return self.with_units(out, ua, ub)<EOL>
Parse Node
        args:
            scope (Scope): Scope object
        raises:
            SyntaxError
        returns:
            str