diff --git a/pyproject.toml b/pyproject.toml index cfc8dcf..1cca301 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ readme = "README.md" requires-python = ">=3.9" dependencies = [ "numpy", - "pyparsing", + "pyparsing>=3.0.0", "rms-filecache", "rms-julian" ] diff --git a/requirements.txt b/requirements.txt index 14bb4e9..b264562 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ coverage flake8 myst-parser numpy -pyparsing +pyparsing>=3.0.0 pytest rms-filecache rms-julian diff --git a/textkernel/_DATA_GRAMMAR.py b/textkernel/_DATA_GRAMMAR.py index 347a337..5ff68d8 100644 --- a/textkernel/_DATA_GRAMMAR.py +++ b/textkernel/_DATA_GRAMMAR.py @@ -9,7 +9,7 @@ Combine, Literal, nums, - oneOf, + one_of, OneOrMore, Optional, ParseException, @@ -44,7 +44,7 @@ # Integer ############################################ -SIGN = oneOf('+ -') +SIGN = one_of('+ -') UNSIGNED_INT = Word(nums) SIGNED_INT = Combine(Optional(SIGN) + UNSIGNED_INT) INT = SIGNED_INT | UNSIGNED_INT @@ -57,7 +57,7 @@ # Floating-point number ############################################ -EXPONENT = Suppress(oneOf('e E d D')) + INT +EXPONENT = Suppress(one_of('e E d D')) + INT EXPONENT.set_parse_action(lambda s, loc, toks: 'e' + toks[0]) FLOAT_WITH_INT = Combine(INT + '.' + Optional(UNSIGNED_INT) + Optional(EXPONENT)) @@ -140,7 +140,7 @@ def _parse_datetime(s, loc, tokens): # Expressions ############################################ -STATEMENT = NAME_ + oneOf('= +=') + OPT_NEWLINE + VALUE + NEWLINE +STATEMENT = NAME_ + one_of('= +=') + OPT_NEWLINE + VALUE + NEWLINE STATEMENT.set_name('STATEMENT') STATEMENT.set_parse_action(lambda s, loc, toks: tuple(toks)) diff --git a/textkernel/_NAME_GRAMMAR.py b/textkernel/_NAME_GRAMMAR.py index 14a955f..1d48637 100644 --- a/textkernel/_NAME_GRAMMAR.py +++ b/textkernel/_NAME_GRAMMAR.py @@ -7,7 +7,7 @@ Combine, Literal, nums, - oneOf, + one_of, OneOrMore, Optional, ParserElement, @@ -41,7 +41,7 @@ GENERAL_NAME = Combine(CharsNotIn(EXCLUDED_CHARS)) GENERAL_NAME.set_name('GENERAL_NAME') -INDEXED_NAME = (oneOf(['BODY', 'OBJECT', 'FRAME', 'TKFRAME', 'INS', 'CK']) +INDEXED_NAME = (one_of(['BODY', 'OBJECT', 'FRAME', 'TKFRAME', 'INS', 'CK']) + Suppress(Optional(Literal('_'))) + INTEGER + Suppress(Optional(Literal('_'))) @@ -49,7 +49,7 @@ INDEXED_NAME.set_name('INDEXED_NAME') INDEXED_NAME.set_parse_action(lambda s, loc, toks: tuple(toks)) -TKFRAME_SUFFIX = oneOf(['ANGLES', 'AXES', 'BORESIGHT', 'MATRIX', 'Q', 'RELATIVE', 'SPEC', +TKFRAME_SUFFIX = one_of(['ANGLES', 'AXES', 'BORESIGHT', 'MATRIX', 'Q', 'RELATIVE', 'SPEC', 'UNITS']) _TKFRAME_SUFFIX = Suppress(Literal('_')) + TKFRAME_SUFFIX TKFRAME_NAME = (Literal('TKFRAME')