diff --git a/src/sdf_toolkit/parser/sdf.lark b/src/sdf_toolkit/parser/sdf.lark index 6b87e08..90d5db5 100644 --- a/src/sdf_toolkit/parser/sdf.lark +++ b/src/sdf_toolkit/parser/sdf.lark @@ -115,6 +115,7 @@ port_spec: STRING // Real value (single or triple) rvalue: FLOAT | "(" [real_triple] ")" + | "(" FLOAT ")" real_triple: [FLOAT] ":" [FLOAT] ":" [FLOAT] @@ -181,3 +182,5 @@ STRING: /[a-zA-Z0-9_\/.\[\]\\$]+/ %ignore WS COMMENT: /\/\/[^\n]*/ %ignore COMMENT +BLOCK_COMMENT: /\/\*[\s\S]*?\*\// +%ignore BLOCK_COMMENT diff --git a/src/sdf_toolkit/parser/transformers.py b/src/sdf_toolkit/parser/transformers.py index 3cc738b..760d4f5 100644 --- a/src/sdf_toolkit/parser/transformers.py +++ b/src/sdf_toolkit/parser/transformers.py @@ -147,9 +147,10 @@ def rvalue(self, *args: float | Values | Token | None) -> Values: if isinstance(arg, Values): return arg if isinstance(arg, float): - return Values(min=None, avg=arg, max=None) + return Values(min=arg, avg=arg, max=arg) if isinstance(arg, Token) and arg.type == "FLOAT": - return Values(min=None, avg=float(arg), max=None) + value = float(arg) + return Values(min=value, avg=value, max=value) return Values() @v_args(inline=True)