Skip to content

WebDSL-Ajax.sdf3

pdmosses/webdsl-statix/webdslstatix/syntax/WebDSL-Ajax.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
module WebDSL-Ajax

imports
  WebDSL-Action
  WebDSL-Lexical
  WebDSL-UI
  WebDSL-Core

context-free sorts

  AjaxStatement  PlaceholderWithAjaxCall PlaceholderVar  

context-free syntax

  Statement.AjaxStatement = <
    <AjaxStatement> ;
  >

  AjaxStatement.AjaxReplace = <replace ( <Exp> , <AjaxReplaceTemplateCall> )>
  AjaxStatement.AjaxAppend = <append ( <Exp> , <TemplateCall> )>
  AjaxStatement.AjaxVisibility = <visibility ( <Exp> , <AjaxVisibility> )>
  .Show = <show>
  .Toggle = <toggle>
  .Hide = <hide>
  AjaxStatement.AjaxRelocate = <relocate ( <PageCall> )>
  AjaxStatement.AjaxRestyle = <restyle ( <Exp> , <Exp> )>
  AjaxStatement.AjaxClear = <clear ( <Exp> )>
  AjaxStatement.AjaxRefresh = <refresh ( )>
  AjaxStatement.AjaxRunScript = <runscript ( <Exp> )>

context-free syntax

  .AjaxReplaceTemplateCall = <<TemplateCall>>
  .AjaxReplaceEmpty = <<EmptyLex>>

lexical sorts

  EmptyLex

lexical syntax

  EmptyLex = "empty"

context-free syntax

  ThisCall = <replace ( <Exp> , <AjaxReplaceTemplateCall> )> {reject}
  ThisCall = <append ( <Exp> , <TemplateCall> )> {reject}
  ThisCall = <visibility ( <Exp> , <AjaxVisibility> )> {reject}
  ThisCall = <relocate ( <PageCall> )> {reject}
  ThisCall = <restyle ( <Exp> , <Exp> )> {reject}
  ThisCall = <clear ( <Exp> )> {reject}
  ThisCall = <refresh ( )> {reject}
  ThisCall = <runscript ( <Exp> )> {reject}

context-free syntax

  .TEPlaceholder = <
    <Placeholder>
  >
  .TEPlaceholderWithAjaxCall = <
    <PlaceholderWithAjaxCall>
  >

  .PlaceholderHtml = <placeholder \< <Id> \> <Id> {
    <TemplateElement*>
  }>
  .PlaceholderHtmlExp = <placeholder \< <Id> \> <Exp> {
    <TemplateElement*>
  }>
  .Placeholder = <placeholder <Id> {
    <TemplateElement*>
  }>
  .PlaceholderExp = <placeholder <Exp> {
    <TemplateElement*>
  }>

  PlaceholderWithAjaxCall.PlaceholderAjaxHtml = <placeholder \< <Id> \> <Id> <TemplateCall>>
  PlaceholderWithAjaxCall.PlaceholderAjaxHtmlExp = <placeholder \< <Id> \> <PHExp> <TemplateCall>>
  PlaceholderWithAjaxCall.PlaceholderAjax = <placeholder <Id> <TemplateCall>>
  PlaceholderWithAjaxCall.PlaceholderAjaxExp = <placeholder <PHExp> <TemplateCall>>

   = PlaceholderVar

  PlaceholderVar.PlaceholderVar = <placeholdervar <Id>>

lexical syntax

  TemplateId = "placeholder" {reject}
  TemplateId = "placeholdervar" {reject}

lexical restrictions

  "placeholder" -/- [a-zA-Z0-9]

context-free priorities

  Placeholder.PlaceholderHtmlExp <4> .> Exp.Var,
  Placeholder.PlaceholderExp <1> .> Exp.Var

context-free sorts

  

context-free syntax

  .PHThisCall = ThisCall
  .PHCall = <<Exp> . <Id> ( <{Exp ","}*> )>
  .PHFieldAccess = <<Exp> . <PropertyId>>
  .PHCollectionIndex = <<Exp> [ <Exp> ]>
  .PHAdd = <<Exp> + <Exp>>
  .PHConst = ConstValue