summaryrefslogtreecommitdiff
path: root/src/sexpr/parser.py
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-03-16 14:55:57 -0700
committerBen Longbons <b.r.longbons@gmail.com>2014-03-24 19:27:09 -0700
commitfe3d4ce758822d65a0a5d617b7b77df2dbc972d8 (patch)
treed048a7e356ba542ebc5647b1aedfce4b8257daa2 /src/sexpr/parser.py
parentc812c92d1a1835f0bda783e709481188c8d92225 (diff)
downloadtmwa-fe3d4ce758822d65a0a5d617b7b77df2dbc972d8.tar.gz
tmwa-fe3d4ce758822d65a0a5d617b7b77df2dbc972d8.tar.bz2
tmwa-fe3d4ce758822d65a0a5d617b7b77df2dbc972d8.tar.xz
tmwa-fe3d4ce758822d65a0a5d617b7b77df2dbc972d8.zip
Implement new magic frontend using sexpr
Diffstat (limited to 'src/sexpr/parser.py')
-rw-r--r--src/sexpr/parser.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/sexpr/parser.py b/src/sexpr/parser.py
new file mode 100644
index 0000000..d638259
--- /dev/null
+++ b/src/sexpr/parser.py
@@ -0,0 +1,25 @@
+class SExpr(object):
+ ''' print a SExpr
+ '''
+ __slots__ = ('_value')
+ name = 'sexpr::SExpr'
+ enabled = True
+
+ def __init__(self, value):
+ self._value = value
+
+ def to_string(self):
+ return None
+
+ def children(self):
+ v = self._value
+ t = v['_type']
+ if t == 0:
+ yield '(list)', v['_list']
+ if t == 1:
+ yield '(int)', v['_int']
+ if t == 2:
+ yield '(str)', v['_str']
+ if t == 3:
+ yield '(token)', v['_str']
+ yield '_span', v['_span']