Confirmed users, Bureaucrats and Sysops emeriti
419
edits
(→Types) |
No edit summary |
||
| Line 41: | Line 41: | ||
document:Object} | document:Object} | ||
</pre> | </pre> | ||
=== Grammar === | |||
Informal subset EBNF grammar for an XHTML-subset markup language, with embedded <i>semantics</i>, capitalized non-terminals, and quoted or lowercase terminals. | |||
Document ::= <i>document = new Document()</i> | |||
Content <i>document.close()</i> | |||
Content ::= (Text | Markup)* | |||
Text ::= text <i>document.appendChild(new Text(text))</i> | |||
Markup ::= < 'a' 'href' '=' string '>' text '</' 'a' '>' | |||
<i>document.appendChild(new Link(string, text))</i> | |||
| < 'button' 'onclick' '=' string > text </ 'button' > | |||
<i>document.appendChild(new Button(string, text))</i> | |||
| < 'iframe' 'src' '=' string /> | |||
<i>document.appendChild(new IFrame(string))</i> | |||
| < 'script' > text </ 'script' > | |||
<i>document.appendChild(new Script(text)) | |||
eval(text)</i> | |||
=== Definitions === | === Definitions === | ||
| Line 88: | Line 109: | ||
Let canAccess(o, r) = allAccess(o, r) || principal(o) <= mapMeet(stack). | Let canAccess(o, r) = allAccess(o, r) || principal(o) <= mapMeet(stack). | ||