示例#1
0
文件: parser.py 项目: nfultz/pyxslt
 def AttributeValueTemplate(self):
     LITERALTEXT = self._scan('LITERALTEXT')
     args = [X.LiteralExpr(LITERALTEXT)]
     while self._peek("r'\\{'", 'LITERALTEXT', 'END') != 'END':
         if self._peek("r'\\{'", 'LITERALTEXT') == "r'\\{'":
             self._scan("r'\\{'")
             Expr = self.Expr()
             args.append(Expr)
             self._scan("r'\\}'")
         LITERALTEXT = self._scan('LITERALTEXT')
         args.append(X.LiteralExpr(LITERALTEXT))
     END = self._scan('END')
     return X.Function('concat', args)
示例#2
0
文件: parser.py 项目: frankk00/movgae
 def PrimaryExpr(self):
     _token_ = self._peek("r'\\('", "r'\\$'", "r'\\.'", 'FUNCNAME', 'NUMBER', 'DQUOTE', 'SQUOTE')
     if _token_ not in ["r'\\('", "r'\\$'", "r'\\.'", 'FUNCNAME']:
         Literal = self.Literal()
         return X.LiteralExpr(Literal)
     elif _token_ == "r'\\$'":
         VariableReference = self.VariableReference()
         return VariableReference
     elif _token_ == "r'\\('":
         self._scan("r'\\('")
         Expr = self.Expr()
         self._scan("r'\\)'")
         return Expr
     elif _token_ == "r'\\.'":
         ContextItemExpr = self.ContextItemExpr()
         return ContextItemExpr
     else:# == 'FUNCNAME'
         FunctionCall = self.FunctionCall()
         return FunctionCall