//
// Copyright (c) 2006, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 15 Sep 05 Brian Frank Creation
// 3 Jun 06 Brian Frank Ported from Java to Fantom - Megan's b-day!
// 11 Oct 06 Brian Frank Switch from import keyword to using
//
**
** Using models an using import statement.
**
class Using : Node
{
//////////////////////////////////////////////////////////////////////////
// Construction
//////////////////////////////////////////////////////////////////////////
new make(Loc loc)
: super(loc)
{
}
//////////////////////////////////////////////////////////////////////////
// Methods
//////////////////////////////////////////////////////////////////////////
** Does this using import the entire pod
Bool isPod() { typeName == null }
override Void print(AstWriter out)
{
out.w(toStr).nl
}
override Str toStr()
{
s := "using $podName"
if (typeName != null) s += "::$typeName"
if (asName != null) s += " as $asName"
return s
}
//////////////////////////////////////////////////////////////////////////
// Fields
//////////////////////////////////////////////////////////////////////////
Str podName := "?" // pod name (including [ffi] if specified)
Str? typeName // type name or null
Str? asName // rename if using as
CPod? resolvedPod // ResolveImports
CType? resolvedType // ResolveImports
}