Skip to content

WebDSL-Dispatch.sdf3

pdmosses/webdsl-statix/webdslstatix/syntax/WebDSL-Dispatch.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
module WebDSL-Dispatch

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

context-free sorts

  DispatchEntry DispatchDefault  DispatchNavigate DispatchNavigateButton

context-free syntax

  .Dispatch = <
    dispatch {
      <DispatchEntry*>
      <DispatchDefault>
    }
  >
  TemplateCall = <dispatch { <TemplateElement*> }> {reject}

  DispatchEntry.DispatchEntry = <
    <Id> <OptFormalArgs> { <TemplateElement*> }
  >
  DispatchEntry.DispatchEntity = <
    <Id> : <Sort> { <TemplateElement*> }
  >
  DispatchDefault.DispatchDefault = <
    default { <TemplateElement*> }
  >
  DispatchDefault.DispatchDefaultNone = <>
  DispatchEntry = <default ( <{FormalArg ","}*> ) { <TemplateElement*> }> {reject}
  DispatchEntry = <default { <TemplateElement*> }> {reject}

   = DispatchNavigate
   = DispatchNavigateButton
  DispatchNavigate.DispatchNavigate = <
    navigate ( <{DispatchNavigateCall "/"}+> ) {
      <TemplateElement*>
    }
  >
  DispatchNavigateButton.DispatchNavigateButton = <
    navigate ( <Exp> , <{DispatchNavigateCall "/"}+> )
  >
  .DispatchNavigateCall = <<Id> ( <{Exp ","}*> )>
  .DispatchNavigateCallNoArg = Id

  DispatchNavigate = <navigate ( <DispatchNavigateCall> ) { <TemplateElement*> }> {reject}

lexical syntax

  TemplateId = "navigate" {reject}