diff --git a/src/cdl_parser/cli.py b/src/cdl_parser/cli.py index 1d300d4..d56e14e 100644 --- a/src/cdl_parser/cli.py +++ b/src/cdl_parser/cli.py @@ -110,7 +110,7 @@ def main(args: list[str] | None = None) -> int: print(f" System: {desc.system}") print(f" Point Group: {desc.point_group}") print(f" Forms ({len(desc.forms)}):") - for form in desc.forms: + for form in desc.flat_forms(): print(f" {form.miller} @ scale={form.scale}") if desc.modifications: print(f" Modifications ({len(desc.modifications)}):") diff --git a/src/cdl_parser/parser.py b/src/cdl_parser/parser.py index 61a8672..5a2d19f 100644 --- a/src/cdl_parser/parser.py +++ b/src/cdl_parser/parser.py @@ -752,7 +752,7 @@ def _parse_feature_value(self) -> int | float | str: elif token.type == TokenType.FLOAT: return float(self._advance().value) elif token.type == TokenType.IDENTIFIER: - return self._advance().value.lower() + return str(self._advance().value).lower() elif token.type == TokenType.POINT_GROUP: # Handle numeric point groups like '1', '3' as values value = token.value @@ -762,7 +762,7 @@ def _parse_feature_value(self) -> int | float | str: return result except ValueError: pass - return self._advance().value + return str(self._advance().value) raise ParseError("Expected feature value", position=token.position) def _parse_phenomenon(self) -> PhenomenonSpec: