summaryrefslogtreecommitdiffstats
path: root/src/front/parser.py
diff options
context:
space:
mode:
authorBenedikt Böhm <bb@xnull.de>2009-05-19 17:20:48 +0200
committerBenedikt Böhm <bb@xnull.de>2009-05-19 17:20:48 +0200
commitca832cb706d6a2d49d049b0ba827f606331269c7 (patch)
treea8ce06f7f8ac4e130a9bfab06be2081327841076 /src/front/parser.py
parenta3fb21ae4602f72992bcaceea3f101efdc1affad (diff)
downloadswppy-ca832cb706d6a2d49d049b0ba827f606331269c7.tar.gz
swppy-ca832cb706d6a2d49d049b0ba827f606331269c7.tar.xz
swppy-ca832cb706d6a2d49d049b0ba827f606331269c7.zip
define interfaces
Diffstat (limited to '')
-rw-r--r--src/front/parser.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/front/parser.py b/src/front/parser.py
new file mode 100644
index 0000000..950a77c
--- /dev/null
+++ b/src/front/parser.py
@@ -0,0 +1,96 @@
+class Parser:
+ lexer = None
+
+ def __init__(self, lexer):
+ return
+
+ def parse(self):
+ return self.program()
+
+ def move(self):
+ return
+
+ def error(self, msg):
+ return
+
+ def match(tag):
+ return
+
+ # bool = bool "||" join | join.
+ def bool(self):
+ return
+
+ # join = join "&&" equality | equality.
+ def join(self):
+ return
+
+ # equality = equality "==" relation | equality "!=" relation | relation.
+ def equality(self):
+ return
+
+ # relation = expression "<" expression | expression "<=" expression | expression ">=" expression | expression ">" expression | expression.
+ def relation(self):
+ return
+
+ # expression = expression "+" term | expression "-" term | term.
+ def expression(self):
+ return
+
+ # term = term "*" unary | term "/" unary | unary.
+ def term(self):
+ return
+
+ # unary = "!" unary | "-" unary | factor.
+ def unary(self):
+ return
+
+ # factor = "(" bool ")" | ident | integer | "true" | "false".
+ def factor(self):
+ return
+
+ # ident_list = ident { "," ident }.
+ def ident_list(self):
+ return
+
+ # expression_list = expression { "," expression }.
+ def expression_list(self):
+ return
+
+ # program = function { function }.
+ def program(self):
+ return
+
+ # function = "fun" ident "[" [ ident_list ] "]" statements "end".
+ def function(self):
+ return
+
+ # statements = statement { nl statement }.
+ def statements(self):
+ return
+
+ # statement = [ if_statement | while_statement | assignment | function_call | return_statement ].
+ def statement(self):
+ return
+
+ # if_statement = "if" expression statements [ "else" statements ] "end".
+ def if_statement(self):
+ return
+
+ # while_statement = "while" expression statements "end".
+ def while_statement(self):
+ return
+
+ # assignment = ident "=" expression.
+ def assignment(self):
+ return
+
+ # function_call = ident "[" [ expression_list ] "]".
+ def function_call(self):
+ return
+
+ # return_statement = "@" expression.
+ def return_statement(self):
+ return
+
+class ParseTree:
+