Skip to content

Commit

Permalink
untabified
Browse files Browse the repository at this point in the history
  • Loading branch information
Jim Fulton committed Sep 14, 1998
1 parent 715b0e2 commit 4517562
Show file tree
Hide file tree
Showing 3 changed files with 171 additions and 171 deletions.
30 changes: 15 additions & 15 deletions DTtestExpr.py
Expand Up @@ -54,8 +54,8 @@
__doc__='''short description
$Id: DTtestExpr.py,v 1.3 1998/09/14 20:48:42 jim Exp $'''
__version__='$Revision: 1.3 $'[11:-2]
$Id: DTtestExpr.py,v 1.4 1998/09/14 22:19:56 jim Exp $'''
__version__='$Revision: 1.4 $'[11:-2]

from DocumentTemplate import *
import sys
Expand All @@ -72,21 +72,21 @@ def test3():
def test4():

h=HTML(
"""
<!--#if expr="level==1"-->
level was 1
<!--#elif expr="level==2"-->
level was 2
<!--#elif expr="level==3"-->
level was 3
<!--#else-->
level was something else
<!--#endif-->
""")
"""
<!--#if expr="level==1"-->
level was 1
<!--#elif expr="level==2"-->
level was 2
<!--#elif expr="level==3"-->
level was 3
<!--#else-->
level was something else
<!--#endif-->
""")

for i in range(4):
print '-' * 77
print i, h(level=i)
print '-' * 77
print i, h(level=i)
print '-' * 77


Expand Down
162 changes: 81 additions & 81 deletions gparse.py
Expand Up @@ -51,7 +51,7 @@
# (540) 371-6909
#
##############################################################################
"$Id: gparse.py,v 1.6 1998/09/14 21:26:44 jim Exp $"
"$Id: gparse.py,v 1.7 1998/09/14 22:19:56 jim Exp $"
import sys, parser, symbol, token

from symbol import test, suite, argument, arith_expr, shift_expr
Expand All @@ -69,59 +69,59 @@
def munge(ast):
if ISTERMINAL(ast[0]): return
else:
if ast[0]==term and len(ast) > 2:
keep_going=1
while keep_going:
keep_going=0
start=2
for i in range(start,len(ast)-1):
if ast[i][0]==STAR:
ast[i-1:i+2]=[multi_munge(ast[i-1:i+2])]
keep_going=1
break
for a in ast[1:]: munge(a)
if ast[0]==term and len(ast) > 2:
keep_going=1
while keep_going:
keep_going=0
start=2
for i in range(start,len(ast)-1):
if ast[i][0]==STAR:
ast[i-1:i+2]=[multi_munge(ast[i-1:i+2])]
keep_going=1
break
for a in ast[1:]: munge(a)

elif ast[0]==power:
keep_going=1
while keep_going:
keep_going=0
start=2
for i in range(start,len(ast)):
a=ast[i]
if a[0]==trailer:
if a[1][0]==DOT:
ast[:i+1]=dot_munge(ast,i)
keep_going=1
start=3
break
if a[1][0]==LSQB:
if (a[2][0] != subscriptlist or
a[2][1][0] != subscript):
raise ParseError, (
'Unexpected form after left square brace')
elif ast[0]==power:
keep_going=1
while keep_going:
keep_going=0
start=2
for i in range(start,len(ast)):
a=ast[i]
if a[0]==trailer:
if a[1][0]==DOT:
ast[:i+1]=dot_munge(ast,i)
keep_going=1
start=3
break
if a[1][0]==LSQB:
if (a[2][0] != subscriptlist or
a[2][1][0] != subscript):
raise ParseError, (
'Unexpected form after left square brace')

slist=a[2]
if len(slist)==2:
# One subscript, check for range and ...
sub=slist[1]
if sub[1][0]==DOT:
raise ParseError, (
'ellipses are not supported')
l=len(sub)
if l < 3 and sub[1][0] != COLON:
ast[:i+1]=item_munge(ast, i)
elif l < 5: ast[:i+1]=slice_munge(ast, i)
else: raise ParseError, 'Invalid slice'
else: ast[:i+1]=item_munge(ast, i)
keep_going=1
start=3
break
slist=a[2]
if len(slist)==2:
# One subscript, check for range and ...
sub=slist[1]
if sub[1][0]==DOT:
raise ParseError, (
'ellipses are not supported')
l=len(sub)
if l < 3 and sub[1][0] != COLON:
ast[:i+1]=item_munge(ast, i)
elif l < 5: ast[:i+1]=slice_munge(ast, i)
else: raise ParseError, 'Invalid slice'
else: ast[:i+1]=item_munge(ast, i)
keep_going=1
start=3
break

for a in ast[1:]: munge(a)
else:
for a in ast[1:]: munge(a)
for a in ast[1:]: munge(a)
else:
for a in ast[1:]: munge(a)
return ast

def slice_munge(ast, i):
Expand All @@ -147,25 +147,25 @@ def slice_munge(ast, i):
sub=ast[i][2][1]
l=len(sub)
if sub[1][0]==COLON:
if l==3:
append([COMMA,','])
a=(argument, (test, (and_test, (not_test, (comparison,
(expr, (xor_expr, (and_expr, (shift_expr, (arith_expr,
if l==3:
append([COMMA,','])
a=(argument, (test, (and_test, (not_test, (comparison,
(expr, (xor_expr, (and_expr, (shift_expr, (arith_expr,
(term, (factor, (power, (atom, (NUMBER, '0')))))))))))))))
append(a)
append([COMMA,','])
append(a)
append([COMMA,','])
append([argument, sub[2]])
else:
append([COMMA,','])
append([argument, sub[1]])
if l==4:
append([COMMA,','])
append([argument, sub[3]])
append([COMMA,','])
append([argument, sub[1]])
if l==4:
append([COMMA,','])
append([argument, sub[3]])

return [power, [atom, [NAME, '__guarded_getslice__']],
[trailer, [LPAR, '('], args, [RPAR, ')'],
]
]
[trailer, [LPAR, '('], args, [RPAR, ')'],
]
]

def item_munge(ast, i):
# Munge an item access into a function call
Expand All @@ -188,15 +188,15 @@ def item_munge(ast, i):
append([COMMA,','])

for sub in ast[i][2][1:]:
if sub[0]==COMMA: append(sub)
else:
if len(sub) != 2: raise ParseError, 'Invalid slice in subscript'
append([argument, sub[1]])
if sub[0]==COMMA: append(sub)
else:
if len(sub) != 2: raise ParseError, 'Invalid slice in subscript'
append([argument, sub[1]])

return [power, [atom, [NAME, '__guarded_getitem__']],
[trailer, [LPAR, '('], args, [RPAR, ')'],
]
]
[trailer, [LPAR, '('], args, [RPAR, ')'],
]
]

def dot_munge(ast, i):
# Munge an attribute access into a function call
Expand Down Expand Up @@ -225,8 +225,8 @@ def dot_munge(ast, i):
append(a)

return [power, [atom, [NAME, '__guarded_getattr__']],
[trailer, [LPAR, '('], args, [RPAR, ')']],
]
[trailer, [LPAR, '('], args, [RPAR, ')']],
]

def multi_munge(ast):
# Munge a multiplication into a function call: __guarded_mul__
Expand All @@ -241,17 +241,17 @@ def multi_munge(ast):
append([COMMA,','])

for a in ast:
if a[0]==STAR: args.append([COMMA,','])
else:
a=(argument, (test, (and_test, (not_test, (comparison,
if a[0]==STAR: args.append([COMMA,','])
else:
a=(argument, (test, (and_test, (not_test, (comparison,
(expr, (xor_expr, (and_expr, (shift_expr, (arith_expr,
(term, a)))))))))))
append(a)
append(a)

return [factor, [power,
[atom, [NAME, '__guarded_mul__']],
[trailer, [LPAR, '('], args, [RPAR, ')'],
]]]
[atom, [NAME, '__guarded_mul__']],
[trailer, [LPAR, '('], args, [RPAR, ')'],
]]]

def compile(src, file_name, ctype):
if ctype=='eval': ast=parser.expr(src)
Expand Down

0 comments on commit 4517562

Please sign in to comment.