Confirmed users, Bureaucrats and Sysops emeriti
419
edits
| Line 59: | Line 59: | ||
=== Grammar === | === Grammar === | ||
Informal subset EBNF grammar for an XHTML-subset markup language, with embedded <i>semantics</i>, capitalized non-terminals, and quoted or lowercase terminals. Unquoted terminals stand for the obvious lexical nonterminals, e.g. <code>tagname</code> is any valid HTML tag name other than those quoted tagnames used in the grammar (<code>button</code>, <code>iframe</code>, <code>script</code>). | Informal subset EBNF grammar for an XHTML-subset markup language, with embedded <i>semantics</i>, capitalized non-terminals, and quoted or lowercase terminals. Unquoted terminals stand for the obvious lexical nonterminals, e.g. <code>tagname</code> is any valid HTML tag name other than those quoted tagnames used in the grammar (<code>a</code>, <code>button</code>, <code>iframe</code>, <code>script</code>). | ||
Document ::= <i>document = new Document()</i> | Document ::= <i>document = new Document()</i> | ||
| Line 70: | Line 70: | ||
Content | Content | ||
</ tagname > <i>document.popChild()</i> | </ tagname > <i>document.popChild()</i> | ||
| < 'a' 'href' '=' string '>' text '</' 'a' '>' | |||
<i>document.appendChild(new Link(string, text))</i> | |||
| < 'button' 'onclick' '=' string > text </ 'button' > | | < 'button' 'onclick' '=' string > text </ 'button' > | ||
<i>document.appendChild(new Button(string, text))</i> | <i>document.appendChild(new Button(string, text))</i> | ||