diff options
Diffstat (limited to 'docs/c1/1-parse.md')
| -rw-r--r-- | docs/c1/1-parse.md | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/docs/c1/1-parse.md b/docs/c1/1-parse.md index e04240b..b01d759 100644 --- a/docs/c1/1-parse.md +++ b/docs/c1/1-parse.md @@ -1,5 +1,7 @@ # Parser for Code & Data +*For an exact specification of the grammar, see [grammar](grammar.html).* + Zisp S-Expressions represent an extremely minimal set of data types; only that which is necessary to strategically construct more complex code and data: @@ -52,9 +54,13 @@ Further notes about the syntax sugar table and examples above: hash sign, or a pipe-quoted string (see next). A bare string can follow the hash sign by separating the two with a backslash: `#\string` -* Strings can be quoted with pipes, like symbols in Scheme: +* Strings can be quoted with pipes, like symbols in Scheme. This is the "real" + string literal syntax, whereas using double quotes is syntax sugar for a + quoted string literal. + + |foo bar baz| -> |foo bar baz| - |foo bar baz| + "foo bar baz" -> (#QUOTE & |foo bar baz|) * Though not represented in the table due to notational difficulty, the form `#rune(...)` doesn't require a list in the second position; any datum that @@ -73,7 +79,9 @@ Further notes about the syntax sugar table and examples above: #abcdefgh ;Could be (#abcdef & gh) or (#abcde & fgh) or ... -* Syntax sugar can combine arbitrarily; some examples follow: +* Syntax sugar can combine arbitrarily. Some examples follow. Any of these may + or may not actually have a meaning in code; many could simply end up producing + a syntax error at the macro-expand stage. #{...} -> (#HASH #BRACE ...) @@ -105,8 +113,6 @@ Further notes about the syntax sugar table and examples above: Zisp's internal use and standard library; users can use lowercase runes with custom meaning without worrying about clashes. -For an exact specification of the grammar, see [grammar](grammar.html). - <!-- ;; Local Variables: ;; fill-column: 80 |
