amperzand
the Language OutlineSo imagine a .html
page. If the parse starts in the abstract syntax tree of amperzand
and <
opening a tag is treated as a statement until <z />
closes the statement back into the language syntax tree as a printed literal, it becomes an easy extension of a C style syntax with duck typing (but not coercion to stings as I hate that "feature").
&
- a literal of use.break;
continue;
do {} while();
export <name>
- a prefix which exports a name, perhaps even as assigned.for(;;) {}
gallowed <sub-name>;
- a prefix which allows a hash loaded usage of a new included sub-file.hallowed <super-name>;
- a prefix which allows a file to be used by inclusion in a super file.if() {} else {}
true
false
<
- another useful literal.main(<number>) {}
- a numbered from zero parameter argument with anonymous inner class extension.new <file-name>(<args>) {}
- instancing a new file as an object with anonymous outer class extension.obj(<string>)
- parses a new object from string.'
- occasionally useful."
- more useful.return <x>;
switch() { case : break; default: break; }
this
- object orientation.utf8(<obj>)
- make an explicit string cast.void(<obj>)
- a void object with a sub-object explanation monad.while() {}
xref(<string>)
- a string to variable reference lookup. Maybe used on the LHS of assignment.yield <x>;
- a return variant for continuations.<z />
- a syntax end delimiter of the HTML statement.And that's about it. Default values from code would have to be entered through the DOM. I think it's technically sufficient.