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

📄 qualifiednames.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. */import java.util.*;aspect Names {  // simple names  syn String ParseName.name() = getID();  syn String PackageOrTypeAccess.name() = getID();  syn String AmbiguousAccess.name() = getID();  syn String VarAccess.name() = getID();  syn String MethodAccess.name() = getID();  syn String ConstructorAccess.name() = "this";  syn String SuperConstructorAccess.name() = "super";  syn String TypeAccess.name() = getID();    syn String PackageAccess.name() = getPackage();    syn String Expr.packageName() = "";  eq TypeAccess.packageName() = getPackage();    eq PackageAccess.packageName() {    StringBuffer s = new StringBuffer();    if(hasPrevExpr()) {      s.append(prevExpr().packageName());      s.append(".");    }    s.append(getPackage());    return s.toString();  }  eq PackageOrTypeAccess.packageName() {    StringBuffer s = new StringBuffer();    if(hasPrevExpr()) {      s.append(prevExpr().packageName());      s.append(".");    }    s.append(name());    return s.toString();  }  // human readable qualified names  syn String TypeAccess.nameWithPackage() = getPackage().equals("") ? name() : (getPackage() + "." + name());  syn String ImportDecl.typeName() {    Access a = getAccess().lastAccess();    String name = a.isTypeAccess() ? ((TypeAccess)a).nameWithPackage() : "";    while(a.hasPrevExpr() && a.prevExpr() instanceof Access) {      Access pred = (Access)a.prevExpr();      if(pred.isTypeAccess())        name = ((TypeAccess)pred).nameWithPackage() + "." + name;      a = pred;    }    return name;  }  syn String Expr.typeName() = "";  eq AbstractDot.typeName() = lastAccess().typeName();  eq TypeAccess.typeName() = isQualified() ? (qualifier().typeName() + "." + name()) : nameWithPackage();}aspect TypeName {  syn String TypeDecl.name() = getID();  syn lazy String TypeDecl.fullName() {    if(isNestedType())      return enclosingType().fullName() + "." + name();    String packageName = packageName();    if(packageName.equals(""))      return name();    return packageName + "." + name();  }  syn lazy String TypeDecl.typeName() {    if(isNestedType())      return enclosingType().typeName() + "." + name();    String packageName = packageName();    if(packageName.equals("") || packageName.equals(PRIMITIVE_PACKAGE_NAME))      return name();    return packageName + "." + name();  }  eq ArrayDecl.typeName() = componentType().typeName() + "[]";  inh lazy String TypeDecl.packageName();  eq CompilationUnit.getChild().packageName() = packageName();  syn lazy String CompilationUnit.packageName() = getPackageDecl();}aspect CreateQualifiedAccesses {  public Access TypeDecl.createQualifiedAccess() {    if(isLocalClass() || isAnonymous()) {      return new TypeAccess(name());    }    else if(!isTopLevelType()) {      return enclosingType().createQualifiedAccess().qualifiesAccess(new TypeAccess(name()));    }    else {      return new TypeAccess(packageName(), name());    }  }  public Access PrimitiveType.createQualifiedAccess() {    return new PrimitiveTypeAccess(name());  }}

⌨️ 快捷键说明

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