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))