⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 primitivetypes.jrag

📁 JDK1.4编译器前端
💻 JRAG
字号:
/* * The JastAdd Extensible Java Compiler (http://jastadd.org) is covered * by the modified BSD License. You should have received a copy of the * modified BSD license with this compiler. *  * Copyright (c) 2005-2008, Torbjorn Ekman * All rights reserved. */aspect PrimitiveTypes {  protected static final String ASTNode.PRIMITIVE_PACKAGE_NAME = "@primitive";  private boolean Program.initPrimTypes = false;    public void Program.addPrimitiveTypes() {    if(!initPrimTypes) {      initPrimTypes = true;        CompilationUnit u = new CompilationUnit();    u.setPackageDecl(PRIMITIVE_PACKAGE_NAME);    addCompilationUnit(u);    TypeDecl classDecl = generateUnknownType();    u.addTypeDecl(classDecl);    TypeDecl unknown = classDecl;    classDecl = generatePrimitiveType(new BooleanType(), "boolean", unknown);    u.addTypeDecl(classDecl);        classDecl = generatePrimitiveType(new DoubleType(), "double", unknown);    u.addTypeDecl(classDecl);        classDecl = generatePrimitiveType(new FloatType(), "float", classDecl);    u.addTypeDecl(classDecl);        classDecl = generatePrimitiveType(new LongType(), "long", classDecl);    u.addTypeDecl(classDecl);        classDecl = generatePrimitiveType(new IntType(), "int", classDecl);    u.addTypeDecl(classDecl);    TypeDecl intDecl = classDecl;        classDecl = generatePrimitiveType(new ShortType(), "short", classDecl);    u.addTypeDecl(classDecl);        classDecl = generatePrimitiveType(new ByteType(), "byte", classDecl);    u.addTypeDecl(classDecl);        classDecl = generatePrimitiveType(new CharType(), "char", intDecl);    u.addTypeDecl(classDecl);        classDecl = new NullType();    classDecl.setModifiers(new Modifiers(new List().add(new Modifier("public"))));    classDecl.setID("null");    u.addTypeDecl(classDecl);    classDecl = new VoidType();    classDecl.setModifiers(new Modifiers(new List().add(new Modifier("public"))));    classDecl.setID("void");    u.addTypeDecl(classDecl);    }  }  public TypeDecl Program.generatePrimitiveType(PrimitiveType type, String name, TypeDecl superType) {    type.setModifiers(new Modifiers(new List().add(new Modifier("public"))));    type.setID(name);    if(superType != null)      type.setSuperClassAccess(superType.createQualifiedAccess());    return type;  }  private TypeDecl Program.generateUnknownType() {    ClassDecl classDecl = new UnknownType();    classDecl.setModifiers(new Modifiers(new List().add(new Modifier("public"))));    classDecl.setID("Unknown");    MethodDecl methodDecl = new MethodDecl(        new Modifiers(new List().add(          new Modifier("public")        )),        new PrimitiveTypeAccess("Unknown"),        "unknown",        new List(),        new List(),        new Opt()    );    classDecl.addBodyDecl(methodDecl);    FieldDeclaration fieldDecl = new FieldDeclaration(        new Modifiers(new List().add(          new Modifier("public")        )),        new PrimitiveTypeAccess("Unknown"),        "unknown",        new Opt()    );    classDecl.addBodyDecl(fieldDecl);       ConstructorDecl constrDecl = new ConstructorDecl(      new Modifiers(new List().add(new Modifier("public"))),      "Unknown",      new List(),      new List(),      new Opt(),      new Block()    );    classDecl.addBodyDecl(constrDecl);          return classDecl;  }  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -