aboutsummaryrefslogtreecommitdiffstats
path: root/spec/grammar/UGI_GRAMMAR_v0.ebnf
diff options
context:
space:
mode:
Diffstat (limited to 'spec/grammar/UGI_GRAMMAR_v0.ebnf')
-rw-r--r--spec/grammar/UGI_GRAMMAR_v0.ebnf50
1 files changed, 25 insertions, 25 deletions
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 === */