Esempio n. 1
0
 def argspec_item(self):
     _token_ = self._peek(self.argspec_items_chks)
     if _token_ == 'KWVAR':
         KWVAR = self._scan('KWVAR')
         self._scan('":"')
         expr_slst = self.expr_slst()
         return (Variable(KWVAR), expr_slst)
     else:  # in self.argspec_item_chks
         expr_slst = self.expr_slst()
         return (None, expr_slst)
Esempio n. 2
0
 def goal_interpolated_literal_with_vars(self):
     INTERP_NO_VARS = self._scan('INTERP_NO_VARS')
     parts = [INTERP_NO_VARS]
     while self._peek(
             self.goal_interpolated_literal_with_vars_rsts) != 'END':
         _token_ = self._peek(
             self.goal_interpolated_literal_with_vars_rsts_)
         if _token_ == 'INTERP_START':
             interpolation = self.interpolation()
             parts.append(interpolation)
         else:  # == 'VAR'
             VAR = self._scan('VAR')
             parts.append(Variable(VAR))
         INTERP_NO_VARS = self._scan('INTERP_NO_VARS')
         parts.append(INTERP_NO_VARS)
     END = self._scan('END')
     return Interpolation.maybe(parts)
Esempio n. 3
0
 def atom(self):
     _token_ = self._peek(self.u_expr_chks)
     if _token_ == 'LPAR':
         LPAR = self._scan('LPAR')
         _token_ = self._peek(self.atom_rsts)
         if _token_ == 'RPAR':
             v = ListLiteral([], comma=False)
         else:  # in self.argspec_item_chks
             expr_map_or_list = self.expr_map_or_list()
             v = expr_map_or_list
         RPAR = self._scan('RPAR')
         return Parentheses(v)
     elif _token_ == 'URL_FUNCTION':
         URL_FUNCTION = self._scan('URL_FUNCTION')
         LPAR = self._scan('LPAR')
         interpolated_url = self.interpolated_url()
         RPAR = self._scan('RPAR')
         return interpolated_url
     elif _token_ == 'ALPHA_FUNCTION':
         ALPHA_FUNCTION = self._scan('ALPHA_FUNCTION')
         LPAR = self._scan('LPAR')
         _token_ = self._peek(self.atom_rsts_)
         if _token_ == '"opacity"':
             self._scan('"opacity"')
             self._scan('"="')
             atom = self.atom()
             RPAR = self._scan('RPAR')
             return AlphaFunctionLiteral(atom)
         else:  # in self.atom_chks
             argspec = self.argspec()
             RPAR = self._scan('RPAR')
             return CallOp("alpha", argspec)
     elif _token_ == 'LITERAL_FUNCTION':
         LITERAL_FUNCTION = self._scan('LITERAL_FUNCTION')
         LPAR = self._scan('LPAR')
         interpolated_function = self.interpolated_function()
         RPAR = self._scan('RPAR')
         return Interpolation.maybe(interpolated_function,
                                    type=Function,
                                    function_name=LITERAL_FUNCTION)
     elif _token_ == 'FNCT':
         FNCT = self._scan('FNCT')
         LPAR = self._scan('LPAR')
         argspec = self.argspec()
         RPAR = self._scan('RPAR')
         return CallOp(FNCT, argspec)
     elif _token_ == 'BANG_IMPORTANT':
         BANG_IMPORTANT = self._scan('BANG_IMPORTANT')
         return Literal(String.unquoted("!important", literal=True))
     elif _token_ in self.atom_chks_:
         interpolated_bareword = self.interpolated_bareword()
         return Interpolation.maybe(interpolated_bareword)
     elif _token_ == 'NUM':
         NUM = self._scan('NUM')
         UNITS = None
         if self._peek(self.atom_rsts__) == 'UNITS':
             UNITS = self._scan('UNITS')
         return Literal(Number(float(NUM), unit=UNITS))
     elif _token_ not in self.atom_chks__:
         interpolated_string = self.interpolated_string()
         return interpolated_string
     elif _token_ == 'COLOR':
         COLOR = self._scan('COLOR')
         return Literal(Color.from_hex(COLOR, literal=True))
     else:  # == 'VAR'
         VAR = self._scan('VAR')
         return Variable(VAR)