|  |  | Meta Syntax

## Meta Syntax

GOO's syntax is described almost entirely as GOO patterns. GOO patterns in turn are defined with a quasiquote metasyntax. Pattern variables are prefixed with a "`,`" or "`,@`" to indicate the matching of one or many elements respectively. The default is for a pattern variable to match one or many s-expressions. Alternatively, a pattern variable's shape may be defined with another pattern. The `,name` shape is builtin and matches only identifiers. The `'['...']'` metasyntax is used to indicate optional patterns, `'...'` is used to indicate zero or more of the preceding pattern element, and `##` is used to denote infix string concatenation. Finally, in this manual, uppercase indicates a special form or macro.

|  |  | Meta Syntax