def parse_locals(self, context): from ParserContext import ParseException locals = [] token = context.get_next_token() if token != 'init': raise ParseException( 'Expected init, found ' + token) # fixme - only required for verifiable methods token = context.get_next_token() if token != '(': raise ParseException('Expected (, found' + token) token = context.get_next_token() lastToken = '' while not token.endswith(')'): v = Variable() if token.startswith('['): v.alias = token[1:-1] lastToken = token token = context.get_next_token() if token == 'class': v2 = ReferenceType() v2.alias = v.alias v2.type = Types.resolve_type(context.get_next_token()) v = v2 elif token.endswith('[]'): # array v.type = Types.Array v.arrayType = Types.resolve_type(token[:-2]) else: v.type = Types.BuiltInTypes[token] # fixme - non-builtin types locals.append(v) lastToken = token token = context.get_next_token() #if token.endswith(')'): # v.name = token[:-1] # token = ')' #else: v.name = token lastToken = token token = context.get_next_token() return locals
def parse_locals(self, context): from ParserContext import ParseException locals = [] token = context.get_next_token() if token != 'init': raise ParseException('Expected init, found ' + token) # fixme - only required for verifiable methods token = context.get_next_token() if token != '(': raise ParseException('Expected (, found' + token) token = context.get_next_token() lastToken = '' while not token.endswith(')'): v = Variable() if token.startswith('['): v.alias = token[1:-1] lastToken = token token = context.get_next_token() if token == 'class': v2 = ReferenceType() v2.alias = v.alias v2.type = Types.resolve_type(context.get_next_token()) v = v2 elif token.endswith('[]'): # array v.type = Types.Array v.arrayType = Types.resolve_type(token[:-2]) else: v.type = Types.BuiltInTypes[token] # fixme - non-builtin types locals.append(v) lastToken = token token = context.get_next_token() #if token.endswith(')'): # v.name = token[:-1] # token = ')' #else: v.name = token lastToken= token token = context.get_next_token() return locals