from scan import *
import sys

class pars(scan):

 def __init__(self):
	scan.__init__(self)

 def parsopen(self):
	self.scanopen()

 def factor(self):
	if self.actsym == 'zahl':
	   self.nextsymbol()
	elif self.actsym == 'klauf':
	   self.nextsymbol()
	   self.expr()
	   if self.actsym == 'klzu':
		self.nextsymbol()
	   else:
		print '---> Klammer zu erwarten'
		sys.exit (0)
	else:
	   print '---> Syntaxfehler'
	   sys.exit(0)

 def term(self):
	self.factor()
	while (self.actsym == 'mal') or (self.actsym == 'durch'):
	   self.nextsymbol()
	   self.factor()

 def expr(self):
	if (self.actsym == 'plus') or (self.actsym == 'minus'):
	   self.nextsymbol()
	self.term()
	while (self.actsym == 'plus') or (self.actsym == 'minus'):
	   self.nextsymbol()
	   self.term()

 def translate(self):
	self.expr()
	if self.actsym <> 'fini':
	   print '---> Unerwartetes Ende, Fehler!'
	   sys.exit(0)

if __name__ == '__main__':
	b = pars()
	print "Testprogramm - Es geht los!"
	b.parsopen()
	b.translate()
	print "Alles im grünen Bereich"

