Skip to content

WebDSL-Prefetch.sdf3

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

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

context-free sorts

   PrefetchNode  PrefetchNodeMod PrefetchCondition    PrefetchWhereMod
  OptSimpleSort PrefetchChildrenOpt OptPrefetchOwnerCast SortOrThis TemplateArgOrThis

context-free syntax

  TemplateElement.PrefetchFor = <
    prefetch-for <Id> <PrefetchTemplateArgsOpt> <PrefetchWhereOpt> <PrefetchChildren>
  >
  Statement.PrefetchForStmt = <
    prefetch-for <Id> <PrefetchTemplateArgsOpt> <PrefetchWhereOpt> <PrefetchChildren>
  >

  .PrefetchChildren = <{
    <PrefetchNode*>
  }>
  PrefetchChildrenOpt.PrefetchChildrenOptNone = <>
  PrefetchChildrenOpt = PrefetchChildren

  PrefetchNode.PrefetchNode = <<OptPrefetchOwnerCast> <Id> <PrefetchNodeMod*> <PrefetchTemplateArgsOpt> <PrefetchCondition> <PrefetchWhereOpt> <PrefetchChildrenOpt>>
  OptPrefetchOwnerCast.OptPrefetchOwnerCastNone = <>
  OptPrefetchOwnerCast.PrefetchOwnerCast = <<SimpleSortLex> .>
  PrefetchNodeMod.NoEmptyBatch = <no-empty-batch>
  PrefetchNodeMod.FetchEarly = <fetch-early>

  .PrefetchTemplateArgsOptNone = <>
  .PrefetchTemplateArgs = <templates [ <{TemplateArgOrThis ","}+> ]>
  TemplateArgOrThis.TemplateArgOrThis = <<Id> ( <{SortOrThis ","}*> )>
  SortOrThis.Sort = Sort
  SortOrThis.TArgThis = <this>
  SortOrThis.PrefetchThisCast = <this as <Sort>>

context-free syntax

  PrefetchCondition.PrefetchConditionNone = <>
  PrefetchCondition.PrefetchCondition = <if ( <PrefetchCond> )>
  .PrefetchWhereOptNone = <>
  .PrefetchWhere = <where <PrefetchWhereMod*> ( <PrefetchCond> )>
  PrefetchWhereMod.Hint = <hint>
  .PrefetchEq                 = <<PrefetchCondVal> == <PrefetchCondVal>> {left}
  .PrefetchNotEq              = <<PrefetchCondVal> != <PrefetchCondVal>> {left}
  .PrefetchLargerThan         = <<PrefetchCondVal> \> <PrefetchCondVal>> {left}
  .PrefetchLargerThanOrEqual  = <<PrefetchCondVal> \>= <PrefetchCondVal>> {left}
  .PrefetchSmallerThan        = <<PrefetchCondVal> \< <PrefetchCondVal>> {left}
  .PrefetchSmallerThanOrEqual = <<PrefetchCondVal> \<= <PrefetchCondVal>> {left}
  .PrefetchAnd                = <<PrefetchCond> && <PrefetchCond>> {left}
  .PrefetchOr                 = <<PrefetchCond> || <PrefetchCond>> {left}
  .PrefetchNot                = <! <PrefetchCond>>
   = PrefetchCondVal
   = <( <PrefetchCond> )> {bracket}

  .PrefetchTrue = <true>
  .PrefetchFalse = <false>
  .PrefetchNull = <null>
  .PrefetchConst = ConstValue
  .PrefetchCondVar = VarId
  .RelativeFieldAccess = <<OptSimpleSort> . <PropertyId>> {left}
  .PrefetchMul = <<PrefetchCondVal> * <PrefetchCondVal>> {left}
  .PrefetchDiv = <<PrefetchCondVal> / <PrefetchCondVal>> {left}
  .PrefetchMod = <<PrefetchCondVal> % <PrefetchCondVal>> {left}
  .PrefetchAdd = <<PrefetchCondVal> + <PrefetchCondVal>> {left}
  .PrefetchSub = <<PrefetchCondVal> - <PrefetchCondVal>> {left}

  OptSimpleSort.OptSimpleSortNone = <>
  OptSimpleSort.OptSimpleSortSome = SimpleSortLex

context-free priorities

  {left :
    PrefetchCondVal.RelativeFieldAccess
  } >
  {
    PrefetchCond.PrefetchNot
  } >
  {left :
    PrefetchCondVal.PrefetchMul
    PrefetchCondVal.PrefetchDiv
    PrefetchCondVal.PrefetchMod
  } >
  {left:
    PrefetchCondVal.PrefetchAdd
    PrefetchCondVal.PrefetchSub
  } >
  {left :
    PrefetchCond.PrefetchEq
    PrefetchCond.PrefetchNotEq
    PrefetchCond.PrefetchLargerThan
    PrefetchCond.PrefetchLargerThanOrEqual
    PrefetchCond.PrefetchSmallerThan
    PrefetchCond.PrefetchSmallerThanOrEqual
  } >
  {left : PrefetchCond.PrefetchAnd } >
  {left : PrefetchCond.PrefetchOr }