welcome: please sign in

Diff for "DomTool/LanguageReference"

Differences between revisions 1 and 109 (spanning 108 versions)
Revision 1 as of 2006-12-17 16:47:06
Size: 1640
Editor: AdamChlipala
Comment:
Revision 109 as of 2008-03-20 08:18:24
Size: 1858
Editor: core_pool_1_75
Comment: ., http://h5897go45i.cn/canopytours.html canopy tours lnorjm, http://h5897go45i.cn/abortionquotes.html abortion quotes %)), http://h5897go45i.cn/rollingdufflebag.html rolling duffle bag >:OO, http:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page gives an in-depth specification of the DomTool language. Most members would probably prefer the more informal presentation in DomTool/UserGuide.

[[TableOfContents()]]

= Source code =

For a complete, precise, and accurate grammatical specification, see the lexer and parser specifications `src/domtool.lex` and `src/domtool.grm` in the DomTool source code. See `src/tycheck.sml` for the type-checker implementation. ["DomTool/Building"] has information on obtaining the source.

= Token conventions =

In the grammars that follow, we use these lexical token class names:

|| '''Name''' || '''Description''' ||
|| `CSymbol` || Capitalized identifier ||

= Predicates =

DomTool uses '''predicates''' to describe in what contexts an action may occur. For instance, web-related actions should only occur inside the scope of a virtual host directive. Predicates are built up following the grammar in the table below, using the letter `P` as the non-terminal for predicates.

Meanings are given as statements that must hold about the context where an action is found. The context is represented as a stack of '''context IDs''' which have been declared with `context` declarations.

|| '''Syntax''' || '''Description''' || '''Meaning''' ||
|| `Root` || Root || The stack is empty. ||
|| `CSymbol` || Context ID || `CSymbol` is on the top of the stack. ||
|| `^P` || Suffixes || Some (not necessarily strict) suffix of the stack matches `P`. ||
|| `!P` || Not || The stack ''doesn't'' match `P`. ||
|| `P1 & P2` || And || The stack matches both `P1` and `P2`. ||
|| `(P)` || Grouping || Identical to `P` ||
., http://h5897go45i.cn/canopytours.html canopy tours
 lnorjm, http://h5897go45i.cn/abortionquotes.html abortion quotes
 %)), http://h5897go45i.cn/rollingdufflebag.html rolling duffle bag
 >:OO, http://h5897go45i.cn/stevekaufman.html steve kaufman
 8], http://h5897go45i.cn/carmenhart.html carmen hart
 880, http://h5897go45i.cn/pneumaticsystems.html pneumatic systems
 8-D, http://h5897go45i.cn/3dvideocard.html 3d video card
 %DDD, http://h5897go45i.cn/princesspartyinvitations.html princess party invitations
 8((, http://h5897go45i.cn/jenniferconnellymovies.html jennifer connelly movies
 sxetvb, http://h5897go45i.cn/picturesofpolio.html pictures of polio
 197235, http://h5897go45i.cn/businessdirectorymalaysia.html business directory malaysia
 %-]], http://h5897go45i.cn/cellfunctionstructure.html cell function structure
 ger, http://h5897go45i.cn/roselynsancheznaked.html roselyn sanchez naked
 :-(, http://h5897go45i.cn/colarates.html cola rates
 :]]], http://h5897go45i.cn/coldwarspacerace.html cold war space race
 8DD, http://h5897go45i.cn/oldchevycars.html old chevy cars
 :))), http://h5897go45i.cn/tamswitmark.html tams witmark
 kzzyp, http://h5897go45i.cn/thebookisonthetable.html the book is on the table
 75205, http://h5897go45i.cn/medicalbillingandcodingschools.html medical billing and coding schools
 usjff, http://h5897go45i.cn/anchoragebedandbreakfasts.html anchorage bed and breakfasts
 :DD, http://h5897go45i.cn/gaymalewrestling.html gay male wrestling
 :-PP, http://h5897go45i.cn/babyheadbands.html baby headbands
 003, http://h5897go45i.cn/recycledproducts.html recycled products
 qpc, http://h5897go45i.cn/gungames.html gungames
 :-))), http://h5897go45i.cn/processguard.html process guard
 4222, http://h5897go45i.cn/animatedmousepointers.html animated mouse pointers
 acntw,
----
CategoryHomepage

., http://h5897go45i.cn/canopytours.html canopy tours


CategoryHomepage

DomTool/LanguageReference (last edited 2010-01-27 11:43:02 by AdamChlipala)