⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.118
Server IP:
2.57.91.60
Server:
Linux sg-nme-web1518.main-hosting.eu 5.14.0-611.16.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Dec 22 03:40:39 EST 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
8.3.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
gsutil
/
third_party
/
pyparsing
/
examples
/
View File Name :
ebnf_number_words.py
# # ebnftest_number_parser.py # # BNF from number_parser.py: # # optional_and ::= ["and" | "-"] # optional_dash ::= ["-"] # units ::= "one" | "two" | "three" | ... | "nine" # tens ::= "twenty" | "thirty" | ... | "ninety" # one_to_99 ::= units | ten | teens | (tens [optional_dash units]) # ten ::= "ten" # teens ::= "eleven" | "twelve" | ... | "nineteen" # hundreds ::= (units | teens_only | tens optional_dash units) "hundred" # thousands ::= one_to_99 "thousand" # # # number from 1-999,999 # number ::= [thousands [optional_and]] [hundreds[optional_and]] one_to_99 # | [thousands [optional_and]] hundreds # | thousands # import ebnf grammar = """ (* EBNF for number_words.py *) number = [thousands, [and]], [hundreds, [and]], [one_to_99]; thousands = one_to_99, "thousand"; hundreds_mult = units | teens | multiples_of_ten, ["-"], units; hundreds = hundreds_mult, "hundred"; teens = "eleven" | "twelve" | "thirteen" | "fourteen" | "fifteen" | "sixteen" | "seventeen" | "eighteen" | "nineteen" ; one_to_99 = units | teens | ten | multiples_of_ten, [["-"], units]; ten = "ten"; multiples_of_ten = "twenty" | "thirty" | "forty" | "fifty" | "sixty" | "seventy" | "eighty" | "ninety"; units = "one" | "two" | "three" | "four" | "five" | "six" | "seven" | "eight" | "nine"; and = "and" | "-"; """ parsers = ebnf.parse(grammar) number_parser = parsers["number"] try: number_parser.create_diagram("ebnf_number_parser_diagram.html") except Exception as e: print("Failed to create diagram for EBNF-generated number parser" f" - {type(e).__name__}: {e}") number_parser.run_tests( """ one seven twelve twenty six forty-two two hundred twelve hundred one hundred and eleven seven thousand and six twenty five hundred and one ninety nine thousand nine hundred and ninety nine # invalid twenty hundred """, full_dump=False )