aboutsummaryrefslogtreecommitdiffstats
path: root/spec/grammar
diff options
context:
space:
mode:
authorAhmed <git@gumx.cc>2026-06-20 00:07:58 +0300
committerAhmed <git@gumx.cc>2026-06-20 00:07:58 +0300
commitf0b79f27b7f17e3862285e01b71aad30cb25cd89 (patch)
tree47b3e67d55a98c089ce16d77cb55ff04f5f3b216 /spec/grammar
parentba5a9613f6c5b7d9b5f7eb7add147a9bdb8b6a44 (diff)
fix: bunch of vibed edits to fix vibed edits
Diffstat (limited to 'spec/grammar')
-rw-r--r--spec/grammar/UGI_GRAMMAR_v0.abnf50
-rw-r--r--spec/grammar/UGI_GRAMMAR_v0.ebnf50
2 files changed, 50 insertions, 50 deletions
diff --git a/spec/grammar/UGI_GRAMMAR_v0.abnf b/spec/grammar/UGI_GRAMMAR_v0.abnf
index d0f7da1..0c411fc 100644
--- a/spec/grammar/UGI_GRAMMAR_v0.abnf
+++ b/spec/grammar/UGI_GRAMMAR_v0.abnf
@@ -1,4 +1,4 @@
-; UGI Grammar v0 — RFC 5234 ABNF
+; UGI Grammar v0: RFC 5234 ABNF
; Generated from ugi_registry_v0.json
;
; Compatible with abnf.dev/abnf2svg
@@ -40,87 +40,87 @@ sub-id = 1*4ALPHA
; === Per-field rules ===
-; a — Age (direct)
+; a: Age (direct)
field-a = %x61 ODIGIT
-; b — Build (special)
+; b: Build (special)
field-b = %x62 ODIGIT [aspire] "/" ODIGIT [aspire]
-; c — Clothing (direct)
+; c: Clothing (direct)
field-c = %x63 ODIGIT [alternative / aspire]
-; d — Editor / IDE (multi)
+; d: Editor / IDE (multi)
field-d-entry = (sub-id / custom-sub) ODIGIT [aspire]
field-d = %x64 1*field-d-entry
-; e — Education (direct)
+; e: Education (direct)
field-e = %x65 ODIGIT [aspire]
-; f — Food / Cooking (direct)
+; f: Food / Cooking (direct)
field-f = %x66 ODIGIT [modifier]
-; g — Geek Specialization (special)
+; g: Geek Specialization (special)
g-domain = 2*4ALPHA ["$"]
g-custom = "~" 2*ALPHA
field-g = %x67 (g-domain / g-custom) *("/" (g-domain / g-custom))
-; h — Hair (multi)
+; h: Hair (multi)
field-h-entry = (sub-id / custom-sub) ODIGIT [aspire]
field-h = %x68 1*field-h-entry
-; i — AI Stance (direct)
+; i: AI Stance (direct)
field-i = %x69 ODIGIT
-; j — Gaming (multi)
+; j: Gaming (multi)
field-j-entry = (sub-id / custom-sub) ODIGIT [modifier]
field-j = %x6A 1*field-j-entry
-; k — Books (direct)
+; k: Books (direct)
field-k = %x6B ODIGIT [aspire]
-; l — Spoken Languages (multi)
+; l: Spoken Languages (multi)
field-l-entry = 2ALPHA ODIGIT [modifier]
field-l = %x6C 1*field-l-entry
-; m — Music (multi)
+; m: Music (multi)
field-m-entry = (sub-id / custom-sub) ODIGIT
field-m = %x6D 1*field-m-entry
-; o — Operating System (multi)
+; o: Operating System (multi)
field-o-entry = (sub-id / custom-sub) ODIGIT [modifier]
field-o = %x6F 1*field-o-entry
-; p — Programming Languages (multi)
+; p: Programming Languages (multi)
field-p-entry = (sub-id / custom-sub) ODIGIT [modifier]
field-p = %x70 1*field-p-entry
-; q — Security / Hacking (direct)
+; q: Security / Hacking (direct)
field-q = %x71 ODIGIT [alternative / modifier]
-; r — Religion (single)
+; r: Religion (single)
field-r = %x72 (sub-id / custom-sub) ODIGIT
-; s — Sex / Relationships (direct)
+; s: Sex / Relationships (direct)
field-s = %x73 ODIGIT [alternative / aspire]
-; t — TV / Film (multi)
+; t: TV / Film (multi)
field-t-entry = (sub-id / custom-sub) ODIGIT
field-t = %x74 1*field-t-entry
-; v — Politics (special)
+; v: Politics (special)
field-v = %x76 ODIGIT "/" ODIGIT
-; w — Hardware (direct)
+; w: Hardware (direct)
field-w = %x77 ODIGIT [modifier]
-; x — Comics / Manga (multi)
+; x: Comics / Manga (multi)
field-x-entry = (sub-id / custom-sub) ODIGIT
field-x = %x78 1*field-x-entry
-; y — Fitness (direct)
+; y: Fitness (direct)
field-y = %x79 ODIGIT [modifier]
-; z — Maker / DIY (direct)
+; z: Maker / DIY (direct)
field-z = %x7A ODIGIT [modifier]
; === Block format ===
diff --git a/spec/grammar/UGI_GRAMMAR_v0.ebnf b/spec/grammar/UGI_GRAMMAR_v0.ebnf
index e37f87f..d950818 100644
--- a/spec/grammar/UGI_GRAMMAR_v0.ebnf
+++ b/spec/grammar/UGI_GRAMMAR_v0.ebnf
@@ -1,4 +1,4 @@
-/* UGI Grammar v0 — W3C EBNF */
+/* UGI Grammar v0: W3C EBNF */
/* Generated from ugi_registry_v0.json */
/* Compatible with bottlecaps.de/rr/ui */
@@ -62,87 +62,87 @@ sub_id ::= alpha alpha? alpha? alpha?
/* === Per-field rules === */
-/* a — Age (direct) */
+/* a: Age (direct) */
field_a ::= 'a' odigit
-/* b — Build (special) */
+/* b: Build (special) */
field_b ::= 'b' odigit aspire? '/' odigit aspire?
-/* c — Clothing (direct) */
+/* c: Clothing (direct) */
field_c ::= 'c' odigit ( alternative | aspire )?
-/* d — Editor / IDE (multi) */
+/* d: Editor / IDE (multi) */
field_d_entry ::= ( sub_id | custom_sub ) odigit ( aspire )?
field_d ::= 'd' field_d_entry+
-/* e — Education (direct) */
+/* e: Education (direct) */
field_e ::= 'e' odigit ( aspire )?
-/* f — Food / Cooking (direct) */
+/* f: Food / Cooking (direct) */
field_f ::= 'f' odigit ( modifier )?
-/* g — Geek Specialization (special) */
+/* g: Geek Specialization (special) */
g_domain ::= alpha alpha alpha? alpha? paid?
g_custom ::= '~' alpha alpha alpha*
field_g ::= 'g' ( g_domain | g_custom ) ( '/' ( g_domain | g_custom ) )*
-/* h — Hair (multi) */
+/* h: Hair (multi) */
field_h_entry ::= ( sub_id | custom_sub ) odigit ( aspire )?
field_h ::= 'h' field_h_entry+
-/* i — AI Stance (direct) */
+/* i: AI Stance (direct) */
field_i ::= 'i' odigit
-/* j — Gaming (multi) */
+/* j: Gaming (multi) */
field_j_entry ::= ( sub_id | custom_sub ) odigit ( modifier )?
field_j ::= 'j' field_j_entry+
-/* k — Books (direct) */
+/* k: Books (direct) */
field_k ::= 'k' odigit ( aspire )?
-/* l — Spoken Languages (multi) */
+/* l: Spoken Languages (multi) */
field_l_entry ::= alpha alpha odigit ( modifier )?
field_l ::= 'l' field_l_entry+
-/* m — Music (multi) */
+/* m: Music (multi) */
field_m_entry ::= ( sub_id | custom_sub ) odigit
field_m ::= 'm' field_m_entry+
-/* o — Operating System (multi) */
+/* o: Operating System (multi) */
field_o_entry ::= ( sub_id | custom_sub ) odigit ( modifier )?
field_o ::= 'o' field_o_entry+
-/* p — Programming Languages (multi) */
+/* p: Programming Languages (multi) */
field_p_entry ::= ( sub_id | custom_sub ) odigit ( modifier )?
field_p ::= 'p' field_p_entry+
-/* q — Security / Hacking (direct) */
+/* q: Security / Hacking (direct) */
field_q ::= 'q' odigit ( alternative | modifier )?
-/* r — Religion (single) */
+/* r: Religion (single) */
field_r ::= 'r' ( sub_id | custom_sub ) odigit
-/* s — Sex / Relationships (direct) */
+/* s: Sex / Relationships (direct) */
field_s ::= 's' odigit ( alternative | aspire )?
-/* t — TV / Film (multi) */
+/* t: TV / Film (multi) */
field_t_entry ::= ( sub_id | custom_sub ) odigit
field_t ::= 't' field_t_entry+
-/* v — Politics (special) */
+/* v: Politics (special) */
field_v ::= 'v' odigit '/' odigit
-/* w — Hardware (direct) */
+/* w: Hardware (direct) */
field_w ::= 'w' odigit ( modifier )?
-/* x — Comics / Manga (multi) */
+/* x: Comics / Manga (multi) */
field_x_entry ::= ( sub_id | custom_sub ) odigit
field_x ::= 'x' field_x_entry+
-/* y — Fitness (direct) */
+/* y: Fitness (direct) */
field_y ::= 'y' odigit ( modifier )?
-/* z — Maker / DIY (direct) */
+/* z: Maker / DIY (direct) */
field_z ::= 'z' odigit ( modifier )?
/* === Block format === */