logo

class

compiler::FacetDef

sys::Obj
  compiler::Node
    compiler::FacetDef
  1  //
  2  // Copyright (c) 2007, Brian Frank and Andy Frank
  3  // Licensed under the Academic Free License version 3.0
  4  //
  5  // History:
  6  //   30 Aug 07  Brian Frank  Creation
  7  //
  8  
  9  **
 10  ** FacetDef models a facet declaration.
 11  **
 12  class FacetDef : Node
 13  {
 14  
 15  //////////////////////////////////////////////////////////////////////////
 16  // Construction
 17  //////////////////////////////////////////////////////////////////////////
 18  
 19    new make(Location location, Str name, Expr value)
 20      : super(location)
 21    {
 22      this.name  = name
 23      this.value = value
 24    }
 25  
 26  //////////////////////////////////////////////////////////////////////////
 27  // Tree
 28  //////////////////////////////////////////////////////////////////////////
 29  
 30    Void walk(Visitor v)
 31    {
 32      value = value.walk(v)
 33    }
 34  
 35  //////////////////////////////////////////////////////////////////////////
 36  // Debug
 37  //////////////////////////////////////////////////////////////////////////
 38  
 39    override Str toStr()
 40    {
 41      return "@$name=$value"
 42    }
 43  
 44    override Void print(AstWriter out)
 45    {
 46      out.w("@").w(name).w("=").w(value).nl
 47    }
 48  
 49  //////////////////////////////////////////////////////////////////////////
 50  // Fields
 51  //////////////////////////////////////////////////////////////////////////
 52  
 53    Str name
 54    Expr value
 55  
 56  }