Parsing

General structure
Parsing consists of multiple layers.

Each layer emits a stream of scanner tokens containing
 * A character offset in the source code
 * A line number
 * A column number
 * Information specific to the layer

Each layer has access to the Unicode characters that the source code consists of, plus the stream of scanner tokens emitted by the previous layer.

Exceptions:
 * The first layer gets no scanner objects.
 * The last layer emits a parse tree instead of scanner tokens.

Comment filtering
There is no comment filtering. Comment syntax consists of normal operators.

Tokenization
Tokens are:
 * Identifiers as by Unicode rules
 * Sequences of whitespace characters
 * The characters ( and )
 * (Later:) Language-provided tokens
 * All other characters

Indentation analysis
Have a stack of indentations (sequences of whitespace characters). Push an empty string. For each input line Take the line's prefix of whitespace characters While the prefix has more characters than the one on top of stack Pop and discard the top of stack Write an UNINDENT marker If the prefix has the same length as the one on top of stack If the prefix is not equal to the one on top of stack Emit an error If the prefix has less characters than the one on top of stack Push the prefix Write an INDENT marker While the stack has two or more items Pop and discard the top of stack Write an UNINDENT pseudocharacter Write an END-OF-FILE marker

Parsing
(Need to write this up. Key concepts: Generalized operator-precedence parsing, left/right precedences for name parts, prefix/circumfix/postfix operators, equivalence of and INDENT-UNINDENT, left prefix uniqueness rule, implicit list syntax as "sequence of values starting on the same column" (and maybe declare equivalent with, operator), equivalence of operator with list parameter to operator+fold operation (left/right fold decided via operator associativity, nonassociative operations can't be written that way). Whew, this is going to be a monster of an explanation.)

General considerations
(some details: "#! /bin/sh delta" line to make it auto-execute on Unixoid systems, .delta postfix to make it execute on Windows-based ones, make the #! line define what scanner rules and operator definitions to load initially)

Implementation status
Concept.