Skip to content
Snippets Groups Projects
Commit 4fce12bd authored by Alexander Heidelbach's avatar Alexander Heidelbach
Browse files

Adjust paranthesis handling

parent 1a439352
Branches
No related tags found
No related merge requests found
......@@ -93,15 +93,16 @@ class ModelParser:
return expression
def _lexical_analysis(self) -> List[Node]:
token_pattern = r"(\w+@\w+|\w+|[+*()@])"
tokens = re.findall(token_pattern, self.modelstring)
def _lexical_analysis(self, input_string: str) -> List[Node]:
token_pattern = r"(\w+@\w+|\w+@\([^\)]+\)|\w+|[+*()])"
tokens = re.findall(token_pattern, input_string)
for expr in tokens:
if re.match(r"\w+@\w+", expr):
if re.match(r"\w+@(\w+|\()", expr):
param_name, model_name = expr.split("@")
token = Node(TokenType.T_EXT, value=model_name, ext_param=param_name)
self._nodeTokens.append(token)
elif re.match(r"\w+", expr):
token = Node(TokenType.T_MODEL, value=expr)
self._nodeTokens.append(token)
......@@ -114,12 +115,12 @@ class ModelParser:
else:
raise Exception("Invalid token: {}".format(expr))
self._nodeTokens.append(Node(TokenType.T_END))
return self._nodeTokens
def parse(self) -> Node:
tokens = self._lexical_analysis()
tokens = self._lexical_analysis(self.modelstring)
self._nodeTokens.append(Node(TokenType.T_END))
fNode = self.__baseParse(tokens)
self.__match(tokens, TokenType.T_END)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment