# UMPL grammar `anything in "" is part of the language` `anything that is a link is part of the language` `when the + is used it means zero or more` `when the * is used it means one or more` `when the ? is used it means one or two` `& means and` `&| means and or` `! means not` ## code [`+`](#expression) `&|` [`+`](#definitions) `&|` [`+`](#statements) ## expression `"(",` [``](#stuff) `, ")", "<" | ">"?` ## stuff [``](#literal) `|` [``](#calling) `|` [``](#identifier) ## literal [``](#number) `|` [``](#string) `|` [``](#boolean) | `"hempty"` ## number `"0x" &| 0-9A-F` ## string ``"`", Any string of Unicode characters, "`"`` ## boolean `"true" | "false"` ## calling `"(",`[](#internal) `|` [``](#functions) `,")"` ## internal [``](#fn-keywords) `,` [``](#function-params) ## function-params `"[",` [`+`](#stuff) `,"]"` ## other-stuff [``](#literal) `|` [``](#expression) `|` [``](#identifier) ## functions `"new"` [``](#function) `,` [``](#function-params) ## function `any single unicode emoji` ## definitions [``](#variable-definitions) `|` [``](#function-definitions) `|` [``](#list-definitions) ## variable-definitions `"create",` [``](#variable) `,"with",` [``](#other-stuff) ## variable [``](#identifier) ## identifier `!` [``](#keyword) [``](#ident-first) `,` [`+`](#ident-other) ## ident-first `!` [``](#number) `a-z/-` ## ident-other [``](#number) `| a-z/-` ## function-definitions `"potato,"` [``](#function) `,` [``](#functions-args) `,"⧼",` [``](#code) `&|` [``](#return) `,` [`"⧽"` ## functions-args [``](#number) ## return `"return" ,` [`+`](#other-stuff) `| ":"` ## list-definitions `"list"` [``](#variable) `"with"` [``](#list-elements) ## list-elements `"[",` [``](#other-stuff) `,` [``](#other-stuff) `,"]", "<" | ">"` ## statements [``](#loop) `|` [`if-else`](#if-else) ## loop `"loop", "⧼"` [``](#code) `&| ("break" | "continue") ,"⧽"` ## if-else `"if", "{",` [``](#expression) `"}", ⧼",` [``](#code) `,"⧽","else", "⧼,"` [``](#code) `,"⧽"`