mercurial/templater.py
changeset 14925 ab545a15d807
parent 14168 135e244776f0
child 14941 4a28cb4df1f8
equal deleted inserted replaced
14924:545e00279670 14925:ab545a15d807
   170             yield i
   170             yield i
   171 
   171 
   172 def buildfunc(exp, context):
   172 def buildfunc(exp, context):
   173     n = getsymbol(exp[1])
   173     n = getsymbol(exp[1])
   174     args = [compileexp(x, context) for x in getlist(exp[2])]
   174     args = [compileexp(x, context) for x in getlist(exp[2])]
       
   175     if n in funcs:
       
   176         f = funcs[n]
       
   177         return (f, args)
   175     if n in context._filters:
   178     if n in context._filters:
   176         if len(args) != 1:
   179         if len(args) != 1:
   177             raise error.ParseError(_("filter %s expects one argument") % n)
   180             raise error.ParseError(_("filter %s expects one argument") % n)
   178         f = context._filters[n]
   181         f = context._filters[n]
   179         return (runfilter, (args[0][0], args[0][1], f))
   182         return (runfilter, (args[0][0], args[0][1], f))
   180     elif n in context._funcs:
       
   181         f = context._funcs[n]
       
   182         return (f, args)
       
   183 
   183 
   184 methods = {
   184 methods = {
   185     "string": lambda e, c: (runstring, e[1]),
   185     "string": lambda e, c: (runstring, e[1]),
   186     "symbol": lambda e, c: (runsymbol, e[1]),
   186     "symbol": lambda e, c: (runsymbol, e[1]),
   187     "group": lambda e, c: compileexp(e[1], c),
   187     "group": lambda e, c: compileexp(e[1], c),
   188 #    ".": buildmember,
   188 #    ".": buildmember,
   189     "|": buildfilter,
   189     "|": buildfilter,
   190     "%": buildmap,
   190     "%": buildmap,
   191     "func": buildfunc,
   191     "func": buildfunc,
   192     }
   192     }
       
   193 
       
   194 funcs = {
       
   195 }
   193 
   196 
   194 # template engine
   197 # template engine
   195 
   198 
   196 path = ['templates', '../templates']
   199 path = ['templates', '../templates']
   197 stringify = templatefilters.stringify
   200 stringify = templatefilters.stringify