Skip to content

WebDSL-XML.sdf3

pdmosses/webdsl-statix/webdslstatix/syntax/WebDSL-XML.sdf3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
module 

imports
  WebDSL-Action
  WebDSL-UI
  WebDSL-Attributes

lexical sorts

  HTML5VoidElement XMLComment XMLCommentChar    Qualifier 
  

context-free syntax

  TemplateElement.XMLEmptyElement = <
    \< <XMLTagName> <Attribute*> /\>
  >
  TemplateElement.XMLElement = <
    \< <XMLTagName> <Attribute*> \>
      <TemplateElement*>
    \</ <XMLTagName> \>
  >

context-free syntax

  TemplateElement.XMLEmptyElementUnclosed = <\< <HTML5VoidElement> <Attribute*> \>>

lexical syntax

  HTML5VoidElement = "area"
  HTML5VoidElement = "base"
  HTML5VoidElement = "br"
  HTML5VoidElement = "col"
  HTML5VoidElement = "embed"
  HTML5VoidElement = "hr"
  HTML5VoidElement = "img"
  HTML5VoidElement = "input"
  HTML5VoidElement = "keygen"
  HTML5VoidElement = "link"
  HTML5VoidElement = "menuitem"
  HTML5VoidElement = "meta"
  HTML5VoidElement = "param"
  HTML5VoidElement = "source"
  HTML5VoidElement = "track"
  HTML5VoidElement = "wbr"

context-free syntax

  TemplateElement.XMLComment = XMLComment

lexical syntax

  XMLComment = "<!--" XMLCommentChar* "-->"
  XMLCommentChar = ~[\-]
  XMLCommentChar = OneDash
  XMLCommentChar = TwoDashes
   = [\-]
   = [\-] [\-]

lexical restrictions

  OneDash -/- [\-]
  TwoDashes -/- [\>]

context-free syntax

  .XMLAttributesIf = <if ( <Exp> ) { <Attribute*> }>
  .XMLAttributesIfElse = <if ( <Exp> ) { <Attribute*> } else { <Attribute*> }>

context-free sorts

  

context-free syntax

  .Attribute = <<QualName> = <Exp>>
   = CommonAttribute
  .AllAttributes = <all attributes>
  .AllAttributesExceptExp = <all attributes except <Exp>>
  .AttributesExp = <attributes <Exp>>

lexical syntax

   = QualName
   = Qualifier? NCName
  Qualifier = NCName ":"
   = [A-Za-z\_] [A-Za-z0-9\.\-\_]*

lexical restrictions

  NCName -/- [A-Za-z0-9\.\-\_]