1 //
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 19 Jul 06 Brian Frank Creation
7 //
8
9 **
10 ** ParamDef models the definition of a method parameter.
11 **
12 class ParamDef : Node, CParam
13 {
14
15 //////////////////////////////////////////////////////////////////////////
16 // Construction
17 //////////////////////////////////////////////////////////////////////////
18
19 new make(Location location, CType paramType := null, Str name := null, Expr def := null)
20 : super(location)
21 {
22 this.paramType = paramType
23 this.name = name
24 this.def = def
25 }
26
27 //////////////////////////////////////////////////////////////////////////
28 // CParam
29 //////////////////////////////////////////////////////////////////////////
30
31 override Bool hasDefault() { return def != null }
32
33 //////////////////////////////////////////////////////////////////////////
34 // Debug
35 //////////////////////////////////////////////////////////////////////////
36
37 override Str toStr()
38 {
39 return "$paramType $name"
40 }
41
42 override Void print(AstWriter out)
43 {
44 out.w(paramType).w(" ").w(name)
45 if (def != null) { out.w(" := "); def.print(out) }
46 }
47
48 //////////////////////////////////////////////////////////////////////////
49 // Fields
50 //////////////////////////////////////////////////////////////////////////
51
52 override CType paramType // type of parameter
53 override Str name // local variable name
54 Expr def // default expression
55
56 }
2 // Copyright (c) 2006, Brian Frank and Andy Frank
3 // Licensed under the Academic Free License version 3.0
4 //
5 // History:
6 // 19 Jul 06 Brian Frank Creation
7 //
8
9 **
10 ** ParamDef models the definition of a method parameter.
11 **
12 class ParamDef : Node, CParam
13 {
14
15 //////////////////////////////////////////////////////////////////////////
16 // Construction
17 //////////////////////////////////////////////////////////////////////////
18
19 new make(Location location, CType paramType := null, Str name := null, Expr def := null)
20 : super(location)
21 {
22 this.paramType = paramType
23 this.name = name
24 this.def = def
25 }
26
27 //////////////////////////////////////////////////////////////////////////
28 // CParam
29 //////////////////////////////////////////////////////////////////////////
30
31 override Bool hasDefault() { return def != null }
32
33 //////////////////////////////////////////////////////////////////////////
34 // Debug
35 //////////////////////////////////////////////////////////////////////////
36
37 override Str toStr()
38 {
39 return "$paramType $name"
40 }
41
42 override Void print(AstWriter out)
43 {
44 out.w(paramType).w(" ").w(name)
45 if (def != null) { out.w(" := "); def.print(out) }
46 }
47
48 //////////////////////////////////////////////////////////////////////////
49 // Fields
50 //////////////////////////////////////////////////////////////////////////
51
52 override CType paramType // type of parameter
53 override Str name // local variable name
54 Expr def // default expression
55
56 }