Skip to content

EnumDeclarations.sdf3

pdmosses/java-front/lang.java/syntax/java/classes/EnumDeclarations.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
module 

// 8.9. Enum Types

imports
  java/lexical/Identifiers
  java/classes/ClassDeclarations
  java/interfaces/Annotations
  java/expressions/Main

context-free sorts

  EnumDeclaration
  
  
  

context-free syntax

  EnumDeclaration.EnumDeclComma = <
  <{ClassModifier " "}*> enum <Id> <SuperInterfaces?> {
    <{EnumConstant ", "}*>,
    <EnumBodyDeclarations?>
  }>
  EnumDeclaration.EnumDecl = <
  <{ClassModifier " "}*> enum <Id> <SuperInterfaces?> {
    <{EnumConstant ", "}*>
    <EnumBodyDeclarations?>
  }>
  .EnumConst = <
  <{Annotation " "}*> <Id> <EnumConstantArgs?>{
    <{ClassBodyDeclaration "\n"}*>
  }>
  .EnumConstNoBody = <
  <{Annotation " "}*> <Id> <EnumConstantArgs?>>

  .EnumConstArgs    = <(<{Expression ", "}*>)>
  .EnumBodyDecs = <;  <{ClassBodyDeclaration "\n"}*>>