1 //
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 16 Apr 06 Brian Frank Creation
7 // 19 Jul 06 Brian Frank Ported from Java to Fan
8 //
9
10 **
11 ** EnumDef is used to define one ordinal/named enum value in
12 ** an enum TypeDef. If using a custom constructor, it includes
13 ** the constructor arguments.
14 **
15 class EnumDef : Node
16 {
17
18 //////////////////////////////////////////////////////////////////////////
19 // Construction
20 //////////////////////////////////////////////////////////////////////////
21
22 new make(Location location)
23 : super(location)
24 {
25 ctorArgs = Expr[,]
26 }
27
28 //////////////////////////////////////////////////////////////////////////
29 // Debug
30 //////////////////////////////////////////////////////////////////////////
31
32 override Str toStr()
33 {
34 return "$ordinal:$name"
35 }
36
37 override Void print(AstWriter out)
38 {
39 out.w(name)
40 if (!ctorArgs.isEmpty)
41 out.w("(").w(ctorArgs.join(", ")).w(")")
42 out.w(" // ").w(ordinal).nl
43 }
44
45 //////////////////////////////////////////////////////////////////////////
46 // Fields
47 //////////////////////////////////////////////////////////////////////////
48
49 Str[] doc
50 Int ordinal
51 Str name
52 Expr[] ctorArgs
53 }
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 16 Apr 06 Brian Frank Creation
7 // 19 Jul 06 Brian Frank Ported from Java to Fan
8 //
9
10 **
11 ** EnumDef is used to define one ordinal/named enum value in
12 ** an enum TypeDef. If using a custom constructor, it includes
13 ** the constructor arguments.
14 **
15 class EnumDef : Node
16 {
17
18 //////////////////////////////////////////////////////////////////////////
19 // Construction
20 //////////////////////////////////////////////////////////////////////////
21
22 new make(Location location)
23 : super(location)
24 {
25 ctorArgs = Expr[,]
26 }
27
28 //////////////////////////////////////////////////////////////////////////
29 // Debug
30 //////////////////////////////////////////////////////////////////////////
31
32 override Str toStr()
33 {
34 return "$ordinal:$name"
35 }
36
37 override Void print(AstWriter out)
38 {
39 out.w(name)
40 if (!ctorArgs.isEmpty)
41 out.w("(").w(ctorArgs.join(", ")).w(")")
42 out.w(" // ").w(ordinal).nl
43 }
44
45 //////////////////////////////////////////////////////////////////////////
46 // Fields
47 //////////////////////////////////////////////////////////////////////////
48
49 Str[] doc
50 Int ordinal
51 Str name
52 Expr[] ctorArgs
53 }