001 aspect PredefinedTypes { 002 // Define the NTA 003 syn lazy List Program.getPredefinedTypeList() { 004 return new List(). 005 add(new UnknownDecl("$unknown")). 006 add(new PrimitiveDecl("boolean")); 007 } 008 009 // Broadcast the predefined types to useful places in the AST 010 syn lazy PrimitiveDecl Program.booleanType() = (PrimitiveDecl) localLookup("boolean"); 011 eq Program.getBlock().booleanType() = booleanType(); 012 eq Program.getPredefinedType().booleanType() = booleanType(); 013 inh PrimitiveDecl BooleanLiteral.booleanType(); 014 inh PrimitiveDecl WhileStmt.booleanType(); 015 inh PrimitiveDecl Decl.booleanType(); 016 }