Skip to content

WebDSL-Native.sdf3

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

imports
  WebDSL-Core
  WebDSL-Lexical

context-free sorts

   NCSuper

context-free syntax

  Definition.NativeClass = <
    native class <QId> <NCAlias> <NCSuper> {
      <NCElement*>
    }
  >

  Definition.ExtendNativeClass = <
    extend native class <QId> <NCAlias> {
      <NCElement*>
    }
  >

  .NCAlias = <as <Id>>
  .NCAliasNone = <>
  NCSuper.NCSuper = <: <Id>>
  NCSuper.NCSuperNone = <>

context-free sorts

     
  NCFunctionStatic 

context-free syntax

  .NCProperty = <
    <Id> : <NativeType>
  >
  .NCFunctionElement = NCFunction
  .NCFunction = <
    <NCFunctionStatic> <NativeFunId> ( <{NativeType ","}*> ) <NCFunctionReturn>
  >
  .NCFunctionReturn = <: <NativeType>>
  .NCFunctionReturnNone = <>
  NCFunctionStatic.NCFunctionStatic = <static>
  NCFunctionStatic.NCFunctionStaticNone = <>
  .NCFunctionFromStatic = <
    <QId> as <NCFunction>
  >
  .NCFunctionFromStaticElement = NCFunctionFromStatic
  .NCConstructor = <
    constructor ( <{NativeType ","}*> )
  >
  .NCConstructorFromStatic = <
    <QId> as constructor ( <{NativeType ","}*> )
  >
  .NativeGenericType = <<Id> \< <{NativeType ","}*> \>>
  .NativeGenericTypeList = <[ <{NativeType ","}*> ]>
  .NativeGenericTypeSet = <{ <{NativeType ","}*> }>
  .NativeSimpleType = Id

   = <constructor ( <{NativeType ","}*> ) <NCFunctionReturn>> {reject}

lexical sorts

  NativeFunId

lexical syntax

  NativeFunId = Id
  NativeFunId = "constructor" {reject}