aa
com.cliffc.aa.HM.HM2.Let Class Reference
Inheritance diagram for com.cliffc.aa.HM.HM2.Let:
[legend]
Collaboration diagram for com.cliffc.aa.HM.HM2.Let:
[legend]

Public Member Functions

String toString ()
 

Package Functions

 Let (String arg0, Syntax body, Syntax use)
 
void get_ids ()
 
HMType hm (HashSet< HMVar > nongen)
 

Package Attributes

final String _arg0
 
final Syntax _body
 
final Syntax _use
 

Detailed Description

Definition at line 141 of file HM2.java.

Constructor & Destructor Documentation

◆ Let()

com.cliffc.aa.HM.HM2.Let.Let ( String  arg0,
Syntax  body,
Syntax  use 
)
package

Definition at line 144 of file HM2.java.

144 { _arg0=arg0; _body=body; _use=use; }

References com.cliffc.aa.HM.HM2.Let._arg0, com.cliffc.aa.HM.HM2.Let._body, and com.cliffc.aa.HM.HM2.Let._use.

Member Function Documentation

◆ get_ids()

void com.cliffc.aa.HM.HM2.Let.get_ids ( )
package

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

Definition at line 155 of file HM2.java.

155 { ENV.put(_arg0, new HMVar()); _use.get_ids(); _body.get_ids(); }

References com.cliffc.aa.HM.HM2.Let._arg0, com.cliffc.aa.HM.HM2.Let._body, com.cliffc.aa.HM.HM2.Let._use, com.cliffc.aa.HM.HM2.ENV, and com.cliffc.aa.HM.HM2.Syntax.get_ids().

Here is the call graph for this function:

◆ hm()

HMType com.cliffc.aa.HM.HM2.Let.hm ( HashSet< HMVar nongen)
package

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

Definition at line 146 of file HM2.java.

146  {
147  HMVar tnew = (HMVar) ENV.get(_arg0);
148  nongen.add(tnew);
149  HMType tbody = _body.hm(nongen);
150  nongen.remove(tnew);
151  tnew.union(tbody);
152  HMType trez = _use.hm(nongen);
153  return trez;
154  }

References com.cliffc.aa.HM.HM2.Let._arg0, com.cliffc.aa.HM.HM2.Let._body, com.cliffc.aa.HM.HM2.Let._use, com.cliffc.aa.HM.HM2.ENV, com.cliffc.aa.HM.HM2.Syntax.hm(), and com.cliffc.aa.HM.HM2.HMVar.union().

Here is the call graph for this function:

◆ toString()

String com.cliffc.aa.HM.HM2.Let.toString ( )

Definition at line 145 of file HM2.java.

145 { return "let "+_arg0+" = "+_body+" in "+_use+" }"; }

References com.cliffc.aa.HM.HM2.Let._arg0, com.cliffc.aa.HM.HM2.Let._body, and com.cliffc.aa.HM.HM2.Let._use.

Member Data Documentation

◆ _arg0

final String com.cliffc.aa.HM.HM2.Let._arg0
package

◆ _body

final Syntax com.cliffc.aa.HM.HM2.Let._body
package

◆ _use

final Syntax com.cliffc.aa.HM.HM2.Let._use
package

The documentation for this class was generated from the following file:
com.cliffc.aa.HM.HM2.Let._arg0
final String _arg0
Definition: HM2.java:142
com.cliffc.aa.HM.HM2.Let._use
final Syntax _use
Definition: HM2.java:143
com.cliffc.aa.HM.HM2.ENV
static final HashMap< String, HMType > ENV
Definition: HM2.java:68
com.cliffc.aa.HM.HM2.HMType.union
abstract HMType union(HMType t)
com.cliffc.aa.HM.HM2.Syntax.hm
abstract HMType hm(HashSet< HMVar > nongen)
com.cliffc.aa.HM.HM2.Let._body
final Syntax _body
Definition: HM2.java:143
com.cliffc.aa.HM.HM2.Syntax.get_ids
abstract void get_ids()