-
Notifications
You must be signed in to change notification settings - Fork 62
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Parsing error when there is a binary operator defined over multiple lines
Software:
- OS: Linux (GH Runner ubuntu-latest)
- Python version 3.10.18
- python-hcl2 version python_hcl2-7.3.1
Snippet of HCL2 code causing the unexpected behaviour:
locals {
dedup_keys_layer8 = {
for k, v in local.action_keys_layer8 :
k => v
if !contains(keys(local.dedup_keys_layer9), k)
&& !contains(keys(local.dedup_keys_layer10), k)
}
dedup_keys_layer7 = {
for k, v in local.action_keys_layer7 :
k => v
if !contains(keys(local.dedup_keys_layer8), k)
&& !contains(keys(local.dedup_keys_layer9), k)
&& !contains(keys(local.dedup_keys_layer10), k)
}
}Expected behavior
a verbose configuration (jdump) or similar for these binary operators, or even 'value know at apply' terraform style
Exception traceback (if applicable):
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/hcl2/api.py", line 16, in load
return loads(file.read(), with_meta=with_meta)
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/hcl2/api.py", line 29, in loads
tree = parser().parse(text + "\n")
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/lark.py", line 655, in parse
return self.parser.parse(text, start=start, on_error=on_error)
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/parser_frontends.py", line 104, in parse
return self.parser.parse(stream, chosen_start, **kw)
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/parsers/lalr_parser.py", line 42, in parse
return self.parser.parse(lexer, start)
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/parsers/lalr_parser.py", line 88, in parse
return self.parse_from_state(parser_state)
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/parsers/lalr_parser.py", line 111, in parse_from_state
raise e
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/parsers/lalr_parser.py", line 102, in parse_from_state
state.feed_token(token)
File "/home/codespace/.pyenv/versions/3.10.18/lib/python3.10/site-packages/lark/parsers/lalr_parser_state.py", line 80, in feed_token
raise UnexpectedToken(token, expected, state=self, interactive_parser=None)
lark.exceptions.UnexpectedToken: Unexpected token Token('BINARY_OP', '&&') at line 139, column 5.
Expected one of:
* RPAR
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working