Exemplo n.º 1
0
 def checkIfLvalueValid(self, token):
     if token.data[0].id == '&':
         raise SyntaxError(Error.generateErrorMessageWithNoArguement('Invalid lvalue type of assignment', token))
     elif token.data[0].id in ('(identifier)', '(literal)'):
         return
     elif token.data[0].arity == 3 and token.data[0].id != '[':
         Error.generateErrorMessageWithNoArguement('Invalid lvalue type of assignment', token)
     else:
         self.checkIfLvalueValid(token.data[0])
 def nud(self):
     self.arity = thisContext.PREFIX_UNARY
     thisContext.contextManager.parser.lexer.advance()
     returnedToken = thisContext.contextManager.parser.parse(120)
     idenToken = thisContext.getIdentifier(returnedToken)
     if idenToken is None:
         raise SyntaxError(Error.generateErrorMessageWithNoArguement('(literal) do not have address', returnedToken))
     self.data.append(returnedToken)
     return self
 def nud(self):
     raise SyntaxError(Error.generateErrorMessageWithNoArguement('Expect (identifier) before {}', self, self.id))