HEX
Server: LiteSpeed
System: Linux br-asc-web1845.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
User: u790421558 (790421558)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/gsutil/third_party/pyparsing/examples/tag_metadata.py
#
# tag_metadata.py
#
# Copyright 2024, Paul McGuire
#

import pyparsing as pp
ppu = pp.unicode

# associate "alphabet" tag with different Unicode character sets
latin = pp.Word(ppu.Latin1.alphas) + pp.Tag("alphabet", "Latin")
greek = pp.Word(ppu.Greek.alphas) + pp.Tag("alphabet", "Greek")
japanese = pp.Word(ppu.Japanese.alphas) + pp.Tag("alphabet", "Japanese")

# associate "mood" tags with different end punctuation marks
end_punc = (
        ("." + pp.Tag("mood", "normal"))
        | ("!" + pp.Tag("mood", "excited"))
        | ("?" + pp.Tag("mood", "curious"))
)

greeting = "Hello," + (latin | greek | japanese) + end_punc

greeting.run_tests(
    """\
    Hello, World.
    Hello, World!
    Hello, κόσμος?
    Hello, 世界!
    """
)

greeting.create_diagram("tag_metadata_diagram.html")