本文整理汇总了Java中gnu.bytecode.ClassType类的典型用法代码示例。如果您正苦于以下问题:Java ClassType类的具体用法?Java ClassType怎么用?Java ClassType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ClassType类属于gnu.bytecode包,在下文中一共展示了ClassType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: compileToNode
import gnu.bytecode.ClassType; //导入依赖的package包/类
public void compileToNode(ApplyExp exp, Compilation comp,
ConsumerTarget target) {
CodeAttr code = comp.getCode();
Expression[] args = exp.getArgs();
args[0].compile(comp, Target.pushObject);
args[1].compile(comp, Target.pushObject);
String mname;
if (target.isContextTarget()) {
comp.loadCallContext();
mname = "applyTemplates$X";
} else {
code.emitLoad(target.getConsumerVariable());
mname = "applyTemplates$C";
}
code.emitInvokeStatic(ClassType.make("gnu.kawa.xslt.ApplyTemplates")
.getDeclaredMethod(mname, 3));
}
示例2: select
import gnu.bytecode.ClassType; //导入依赖的package包/类
public boolean select(Object value)
{
gnu.bytecode.Method method = (gnu.bytecode.Method) value;
String mname = method.getName();
int mmods = method.getModifiers();
if ((mmods & modmask) != modifiers
|| (mmods & Access.SYNTHETIC) != 0
|| ! mname.startsWith(name))
return false;
int mlen = mname.length();
char c;
if (mlen != nlen
&& (mlen != nlen + 2
|| mname.charAt(nlen) != '$'
|| ((c = mname.charAt(nlen+1)) != 'V' && c != 'X'))
&& (mlen != nlen + 4
|| ! mname.endsWith("$V$X")))
return false;
ClassType declaring = receiver instanceof ClassType ? (ClassType) receiver
: method.getDeclaringClass();
return caller == null
|| caller.isAccessible(declaring, receiver, method.getModifiers());
}
示例3: createReadTable
import gnu.bytecode.ClassType; //导入依赖的package包/类
public ReadTable createReadTable ()
{
ReadTable tab = ReadTable.createInitial();
tab.postfixLookupOperator = ':';
ReaderDispatch dispatchTable = (ReaderDispatch) tab.lookup('#');
dispatchTable.set('\'', new ReaderQuote(asSymbol("syntax")));
dispatchTable.set('`', new ReaderQuote(asSymbol("quasisyntax")));
dispatchTable.set(',', ReaderDispatchMisc.getInstance());
tab.putReaderCtorFld("path", "gnu.kawa.lispexpr.LangObjType", "pathType");
tab.putReaderCtorFld("filepath", "gnu.kawa.lispexpr.LangObjType", "filepathType");
tab.putReaderCtorFld("URI", "gnu.kawa.lispexpr.LangObjType", "URIType");
tab.putReaderCtor("symbol", ClassType.make("gnu.mapping.Symbol"));
tab.putReaderCtor("namespace", ClassType.make("gnu.mapping.Namespace"));
tab.putReaderCtorFld("duration", "kawa.lib.numbers", "duration");
tab.setFinalColonIsKeyword(true);
return tab;
}
示例4: getTypeMap
import gnu.bytecode.ClassType; //导入依赖的package包/类
@Override
protected synchronized HashMap<String, Type> getTypeMap() {
if (types == null) {
booleanType = new LangPrimType(Type.booleanType,
Scheme.getInstance());
types = new HashMap<String, Type>(128); // Bit more wiggle room
types.put("boolean", booleanType);
types.putAll(super.getTypeMap());
for (int i = uniformVectorTags.length; --i >= 0;) {
String tag = uniformVectorTags[i];
String cname = "gnu.lists." + tag.toUpperCase() + "Vector";
types.put(tag + "vector", ClassType.make(cname));
}
}
return types;
}
示例5: createReadTable
import gnu.bytecode.ClassType; //导入依赖的package包/类
public ReadTable createReadTable ()
{
ReadTable tab = ReadTable.createInitial();
int std = standardToFollow;
ReaderDispatch dispatchTable = (ReaderDispatch) tab.lookup('#');
ReaderDispatchSyntaxQuote sentry = new ReaderDispatchSyntaxQuote();
dispatchTable.set('\'', sentry);
dispatchTable.set('`', sentry);
dispatchTable.set(',', sentry);
tab.putReaderCtorFld("path", "gnu.kawa.lispexpr.LangObjType", "pathType");
tab.putReaderCtorFld("filepath", "gnu.kawa.lispexpr.LangObjType", "filepathType");
tab.putReaderCtorFld("URI", "gnu.kawa.lispexpr.LangObjType", "URIType");
tab.putReaderCtor("symbol", ClassType.make("gnu.mapping.Symbol"));
tab.putReaderCtor("namespace", ClassType.make("gnu.mapping.Namespace"));
tab.putReaderCtorFld("duration", "kawa.lib.numbers", "duration");
if (std == FOLLOW_R5RS || std == FOLLOW_R6RS || std == FOLLOW_R7RS)
{
}
else
{
tab.postfixLookupOperator = ':';
tab.setFinalColonIsKeyword(true);
}
return tab;
}
示例6: gnuByteCodeHelloWorld
import gnu.bytecode.ClassType; //导入依赖的package包/类
static byte[] gnuByteCodeHelloWorld() {
ClassType c = new ClassType("HelloWorld");
c.setSuper("java.lang.Object");
c.setModifiers(Access.PUBLIC);
c.setSourceFile("HelloWorld.java");
Method m = c.addMethod("<init>", "()V", Access.PUBLIC);
CodeAttr code = m.startCode();
code.pushScope();
code.emitPushThis();
code.emitInvokeSpecial(objectCtor);
code.emitReturn();
code.popScope();
m = c.addMethod("main", "([Ljava/lang/String;)V", Access.PUBLIC
| Access.STATIC);
code = m.startCode();
code.pushScope();
code.emitGetStatic(outField);
code.emitPushString("Hello world!");
code.emitInvokeVirtual(printlnMethod);
code.emitReturn();
code.popScope();
return c.writeToArray();
}
示例7: getTypeMap
import gnu.bytecode.ClassType; //导入依赖的package包/类
@Override
protected synchronized HashMap<String, Type> getTypeMap() {
if (types == null) {
types = new HashMap<String, Type>(128); // Bit more wiggle room
types.put("boolean", booleanType);
types.put("parameter", Compilation.typeLocationProc);
types.putAll(super.getTypeMap());
for (int i = uniformVectorTags.length; --i >= 0;) {
String tag = uniformVectorTags[i];
String cname = "gnu.lists." + tag.toUpperCase() + "Vector";
types.put(tag + "vector", ClassType.make(cname));
}
}
return types;
}
示例8: createReadTable
import gnu.bytecode.ClassType; //导入依赖的package包/类
public ReadTable createReadTable ()
{
ReadTable tab = ReadTable.createInitial();
int std = standardToFollow;
ReaderDispatch dispatchTable = (ReaderDispatch) tab.lookup('#');
ReaderDispatchSyntaxQuote sentry = new ReaderDispatchSyntaxQuote();
dispatchTable.set('\'', sentry);
dispatchTable.set('`', sentry);
dispatchTable.set(',', sentry);
tab.putReaderCtorFld("path", "gnu.kawa.lispexpr.LangObjType", "pathType");
tab.putReaderCtorFld("filepath", "gnu.kawa.lispexpr.LangObjType", "filepathType");
tab.putReaderCtorFld("URI", "gnu.kawa.lispexpr.LangObjType", "URIType");
tab.putReaderCtor("symbol", ClassType.make("gnu.mapping.Symbol"));
tab.putReaderCtor("namespace", ClassType.make("gnu.mapping.Namespace"));
tab.putReaderCtorFld("duration", "kawa.lib.numbers", "duration");
if (std == FOLLOW_R5RS || std == FOLLOW_R6RS || std == FOLLOW_R7RS)
{
}
else
{
tab.postfixLookupOperator = ':';
tab.setFinalColonIsKeyword(true);
tab.extraFlags = LispReader.SCM_LEXPONENT_IS_BIGDECIMAL;
tab.set('@', new ReaderQuote(LispLanguage.splice_sym,
ReadTable.NON_TERMINATING_MACRO));
}
return tab;
}
示例9: writeExternal
import gnu.bytecode.ClassType; //导入依赖的package包/类
public void writeExternal(ObjectOutput out) throws IOException
{
String moduleClassName = null;
if (getOuter() instanceof ModuleExp) {
ClassType moduleClass = ((ModuleExp) getOuter()).getClassType();
if (moduleClass != null)
moduleClassName = moduleClass.getName();
}
out.writeObject(moduleClassName);
}
示例10: getInstance
import gnu.bytecode.ClassType; //导入依赖的package包/类
public static ClassNamespace getInstance (String name, ClassType ctype)
{
synchronized (nsTable)
{
Object old = nsTable.get(name);
if (old instanceof ClassNamespace)
return (ClassNamespace) old;
ClassNamespace ns = new ClassNamespace(ctype);
nsTable.put(name, ns);
return ns;
}
}
示例11: MethodFilter
import gnu.bytecode.ClassType; //导入依赖的package包/类
public MethodFilter(String name, int modifiers, int modmask,
ClassType caller, ObjectType receiver)
{
this.name = name;
this.nlen = name.length();
this.modifiers = modifiers;
this.modmask = modmask;
this.caller = caller;
this.receiver = receiver;
}
示例12: make
import gnu.bytecode.ClassType; //导入依赖的package包/类
public static StaticFieldLocation make (Declaration decl)
{
gnu.bytecode.Field fld = decl.field;
ClassType ctype = fld.getDeclaringClass();
StaticFieldLocation loc = new StaticFieldLocation(ctype, fld.getName());
loc.setDeclaration(decl);
//maybe setKindFlags();
return loc;
}
示例13: StaticGet
import gnu.bytecode.ClassType; //导入依赖的package包/类
public StaticGet (ClassType ctype, String name, Type ftype, int flags)
{
this.ctype = ctype;
this.fname = name;
field = ctype.getField(name);
if (field == null)
field = ctype.addField(name, ftype, flags);
}
示例14: StaticSet
import gnu.bytecode.ClassType; //导入依赖的package包/类
public StaticSet (ClassType ctype, String name, Type ftype, int flags)
{
this.ctype = ctype;
this.fname = name;
field = ctype.getField(name);
if (field == null)
field = ctype.addField(name, ftype, flags);
}
示例15: emitPushBoolean
import gnu.bytecode.ClassType; //导入依赖的package包/类
@Override
public void emitPushBoolean(boolean value)
{
CodeAttr code = getCode();
if (value)
code.emitGetStatic(ClassType.make("gnu.commonlisp.lang.Lisp2").getDeclaredField("TRUE"));
else
code.emitGetStatic(Compilation.scmListType.getDeclaredField("Empty"));
}