aa
com.cliffc.aa.HM.HM1.Lambda2 Class Reference
Inheritance diagram for com.cliffc.aa.HM.HM1.Lambda2:
[legend]
Collaboration diagram for com.cliffc.aa.HM.HM1.Lambda2:
[legend]

Public Member Functions

String toString ()
 

Package Functions

 Lambda2 (String arg0, String arg1, Syntax body)
 
HMType hm (HashMap< String, HMType > env, HashSet< HMVar > nongen)
 

Package Attributes

final String _arg0
 
final String _arg1
 
final Syntax _body
 

Detailed Description

Definition at line 97 of file HM1.java.

Constructor & Destructor Documentation

◆ Lambda2()

com.cliffc.aa.HM.HM1.Lambda2.Lambda2 ( String  arg0,
String  arg1,
Syntax  body 
)
package

Member Function Documentation

◆ hm()

HMType com.cliffc.aa.HM.HM1.Lambda2.hm ( HashMap< String, HMType env,
HashSet< HMVar nongen 
)
package

Reimplemented from com.cliffc.aa.HM.HM1.Syntax.

Definition at line 102 of file HM1.java.

102  {
103  HMVar tnew0 = new HMVar();
104  HMVar tnew1 = new HMVar();
105  // Push _arg0->tnew0 into env & nongen, popping them off after doing body
106  env.put(_arg0,tnew0);
107  env.put(_arg1,tnew1);
108  nongen.add(tnew0);
109  nongen.add(tnew1);
110  HMType trez = _body.hm(env,nongen);
111  nongen.remove(tnew0);
112  nongen.remove(tnew1);
113  env.remove(_arg0);
114  env.remove(_arg1);
115  return Oper.fun(tnew0,tnew1,trez);
116  }

References com.cliffc.aa.HM.HM1.Lambda2._arg0, com.cliffc.aa.HM.HM1.Lambda2._arg1, com.cliffc.aa.HM.HM1.Lambda2._body, com.cliffc.aa.HM.HM1.Oper.fun(), and com.cliffc.aa.HM.HM1.Syntax.hm().

Here is the call graph for this function:

◆ toString()

String com.cliffc.aa.HM.HM1.Lambda2.toString ( )

Definition at line 101 of file HM1.java.

101 { return "{ "+_arg0+" "+_arg1+" -> "+_body+" }"; }

References com.cliffc.aa.HM.HM1.Lambda2._arg0, com.cliffc.aa.HM.HM1.Lambda2._arg1, and com.cliffc.aa.HM.HM1.Lambda2._body.

Member Data Documentation

◆ _arg0

final String com.cliffc.aa.HM.HM1.Lambda2._arg0
package

◆ _arg1

final String com.cliffc.aa.HM.HM1.Lambda2._arg1
package

◆ _body

final Syntax com.cliffc.aa.HM.HM1.Lambda2._body
package

The documentation for this class was generated from the following file:
com.cliffc.aa.HM.HM1.Lambda2._body
final Syntax _body
Definition: HM1.java:99
com.cliffc.aa.HM.HM1.Lambda2._arg0
final String _arg0
Definition: HM1.java:98
com.cliffc.aa.HM.HM1.Syntax.hm
abstract HMType hm(HashMap< String, HMType > env, HashSet< HMVar > nongen)
com.cliffc.aa.HM.HM1.Lambda2._arg1
final String _arg1
Definition: HM1.java:98