PowerForms Grammar

Below is the grammar for valid PowerForms documents.

In the grammar `*' indicates zero or more repetitions, `+' indicates one or more repetitions, and `|' indicates a choice. Attributes enclosed in `[' and `]' are optional.

powerforms ::= <powerforms>
    ( regexp-def | constraint | status | initialization | autocomplete )*
</powerforms>
 
constraint ::= <constraint [form=form] [field=field] [id=id]>
     constraint-body
</constraint>
 
constraint-body ::= <if>
    expression
    <then> constraint-body </then>
    <else> constraint-body </else>
</if>
| <ignore/>
| regexp
| expression
 
expression ::= <count number=int />
| <count min=int max=int />
| <equal field=field [value=value] />
| <equal>
    field+
</equal>
| <less-than field=field [value=value] [type=type] />
| <less-than [type=type]>
    field+
</less-than>
| <match field=field >
    regexp
</match>
| <not>
    expression*
</not>
| <and>
    expression*
</and>
| <or>
    expression*
</or>
 
field ::= <field name=name />
 
regexp ::= <empty />
| <anychar />
| <anything />
| <const value=string />
| <charset value=string />
| <charrange low=char high=char />
| <interval low=int high=int [width=int] [radix=int] />
| <repeat count=int>
     regexp
</repeat>
| <repeat [min=int] [max=int]>
     regexp
</repeat>
| <complement>
     regexp
</complement>
| <optional>
     regexp
</optional>
| <plus>
     regexp
</plus>
| <intersection>
     regexp+
</intersection>
| <union>
     regexp+
</union>
| <concat>
     regexp+
</concat>
| <regexp pattern=pattern />
| <regexp url=url />
| <regexp idref=idref />
 
regexp-def ::= <regexp id=id>
     regexp
</regexp>
 
status ::= <status [type=type] [red=red] [yellow=yellow] [green=green] [na=na] />
 
initialization ::= <init [form=form] field=field value=value />
 
autocomplete ::= <autocomplete constraint=id [type=type] [image=url] [na=url] />

Updated 22 April 2002 by Mikkel Ricky [Valid XHTML 1.0] [Valid CSS]