diff --git a/parser/parser-fplo/FploInputParser.py b/parser/parser-fplo/FploInputParser.py index 4a06660b6a925a8b629f959b70bf9fe72d5d6da0..034e83fd73a530dd53d081778670ed139021d278 100755 --- a/parser/parser-fplo/FploInputParser.py +++ b/parser/parser-fplo/FploInputParser.py @@ -356,18 +356,18 @@ class concrete_statement(concrete_node): if len(self.items) < 1: return None result = None - end_of_declaration = 0 + pos_in_statement = 0 # check declarations if isinstance(self.items[0], token_keyword): if self.items[0].value == 'section': result = AST_section(self.items[1].value) # name of section result.append_block(self.items[2].to_AST()) # section-block - end_of_declaration = 2 + pos_in_statement = 3 if self.items[0].value == 'struct': struct = AST_datatype_struct() struct.append_block(self.items[1].to_AST()) result = AST_declaration(self.items[2].value, struct) - end_of_declaration = 2 + pos_in_statement = 3 elif isinstance(self.items[0], token_datatype): primtype = AST_datatype_primitive(self.items[0].value) if primtype.name == 'char' and isinstance(self.items[1], concrete_subscript): @@ -375,22 +375,22 @@ class concrete_statement(concrete_node): # not correct in C, but all declared chars in FPLO input # are char arrays declaration_name = self.items[2].value - end_of_declaration = 2 + pos_in_statement = 3 else: declaration_name = self.items[1].value - end_of_declaration = 1 + pos_in_statement = 2 result = AST_declaration(declaration_name, primtype) if ( - (len(self.items)-1 > end_of_declaration) and - isinstance(self.items[end_of_declaration+1], concrete_subscript) + (len(self.items) > pos_in_statement) and + isinstance(self.items[pos_in_statement], concrete_subscript) ): # subscript in LHS declares shape if not isinstance(result, AST_declaration): raise RuntimeError('encountered subscript on non-declaration') - end_of_declaration = end_of_declaration + 1 - result.set_shape(self.items[end_of_declaration].to_AST_shape()) - if len(self.items)-1 > end_of_declaration: - LOGGER.error("token following declaration: %s", str(self.items[end_of_declaration+1])) + result.set_shape(self.items[pos_in_statement].to_AST_shape()) + pos_in_statement = pos_in_statement + 1 + if len(self.items) > pos_in_statement: + LOGGER.error("token following declaration: %s", str(self.items[pos_in_statement])) # else: # LOGGER.error("token following declaration: None") return result