diff options
| author | ptmcg <ptmcg@austin.rr.com> | 2021-08-01 12:57:10 -0500 |
|---|---|---|
| committer | ptmcg <ptmcg@austin.rr.com> | 2021-08-01 12:57:10 -0500 |
| commit | f22dcdc9be6aebf7defc1ef43e39c53921ba7566 (patch) | |
| tree | d40b225f53c90a0b4676c59323251c9c2c825df6 /examples/number_words.py | |
| parent | 1688592bd97e573174e9eab482846e0f1194652a (diff) | |
| download | pyparsing-git-f22dcdc9be6aebf7defc1ef43e39c53921ba7566.tar.gz | |
Update __versionTime__; blacken core code and examples
Diffstat (limited to 'examples/number_words.py')
| -rw-r--r-- | examples/number_words.py | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/examples/number_words.py b/examples/number_words.py index b1217cf..1d65c95 100644 --- a/examples/number_words.py +++ b/examples/number_words.py @@ -43,18 +43,32 @@ def define_numeric_word_range(s, vals): opt_dash = pp.Optional(pp.Suppress("-")).setName("optional '-'") -opt_and = pp.Optional((pp.CaselessKeyword("and") | "-").suppress()).setName("optional 'and'") +opt_and = pp.Optional((pp.CaselessKeyword("and") | "-").suppress()).setName( + "optional 'and'" +) zero = define_numeric_word_range("zero oh", [0, 0]) -one_to_9 = define_numeric_word_range("one two three four five six seven eight nine", range(1, 9 + 1)).setName("1-9") -eleven_to_19 = define_numeric_word_range("eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen", - range(11, 19 + 1)).setName("eleven_to_19") +one_to_9 = define_numeric_word_range( + "one two three four five six seven eight nine", range(1, 9 + 1) +).setName("1-9") +eleven_to_19 = define_numeric_word_range( + "eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen", + range(11, 19 + 1), +).setName("eleven_to_19") ten_to_19 = (define_numeric_word("ten", 10) | eleven_to_19).setName("ten_to_19") one_to_19 = (one_to_9 | ten_to_19).setName("1-19") -tens = define_numeric_word_range("twenty thirty forty fifty sixty seventy eighty ninety", range(20, 90+1, 10)) -hundreds = (one_to_9 | eleven_to_19 | (tens + opt_dash + one_to_9)) + define_numeric_word("hundred", 100) -one_to_99 = (one_to_19 | (tens + pp.Optional(opt_dash + one_to_9)).addParseAction(sum)).setName("1-99") -one_to_999 = ((pp.Optional(hundreds + opt_and) + one_to_99 | hundreds).addParseAction(sum)).setName("1-999") +tens = define_numeric_word_range( + "twenty thirty forty fifty sixty seventy eighty ninety", range(20, 90 + 1, 10) +) +hundreds = ( + one_to_9 | eleven_to_19 | (tens + opt_dash + one_to_9) +) + define_numeric_word("hundred", 100) +one_to_99 = ( + one_to_19 | (tens + pp.Optional(opt_dash + one_to_9)).addParseAction(sum) +).setName("1-99") +one_to_999 = ( + (pp.Optional(hundreds + opt_and) + one_to_99 | hundreds).addParseAction(sum) +).setName("1-999") thousands = one_to_999 + define_numeric_word("thousand", 1000) hundreds.setName("100s") thousands.setName("1000s") @@ -63,6 +77,7 @@ thousands.setName("1000s") def multiply(t): return mul(*t) + hundreds.addParseAction(multiply) thousands.addParseAction(multiply) |
