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

📄 attributes.java

📁 A framework written in Java for implementing high-level and dynamic languages, compiling them into J
💻 JAVA
字号:
// Copyright (c) 2001  Per M.A. Bothner and Brainfood Inc.// This is free software;  for terms and warranty disclaimer see ./COPYING.package gnu.kawa.xml;import gnu.mapping.*;import gnu.lists.*;public class Attributes extends MethodProc{  public static final Attributes attributes = new Attributes();    public int numArgs() { return 0x1001; }  public static void attributes (TreeList tlist, int index, Consumer consumer)  {    int attr = tlist.gotoAttributesStart(index);    System.out.print("Attributes called, at:"+attr+" "); tlist.dump();    while (attr >= 0)      {	int ipos = attr << 1;	int kind = tlist.getNextKind(ipos);	if (kind != Sequence.ATTRIBUTE_VALUE)	  break;	// if kind is CHAR_VALUE return text node.  FIXME	int next = tlist.nextDataIndex(attr);	if (consumer instanceof PositionConsumer)	  ((PositionConsumer) consumer).writePosition(tlist,  ipos);	else	  tlist.consumeIRange(attr, next, consumer);	attr = next;      }  }  public static void attributes (Object node, Consumer consumer)  {    if (node instanceof TreeList)      {	attributes((TreeList) node, 0, consumer);      }    else if (node instanceof SeqPosition && ! (node instanceof TreePosition))      {	SeqPosition pos = (SeqPosition) node;	if (pos.sequence instanceof TreeList)	  attributes((TreeList) pos.sequence, pos.ipos >> 1, consumer);      }  }  public void apply (CallContext ctx)  {    Consumer consumer = ctx.consumer;    Object node = ctx.getNextArg();    ctx.lastArg();    if (node instanceof Values)      {	TreeList tlist = (TreeList) node;	int index = 0;	for (;;)	  {	    int kind = tlist.getNextKind(index << 1);	    if (kind == Sequence.EOF_VALUE)	      break;	    if (kind == Sequence.OBJECT_VALUE)	      attributes(tlist.getPosNext(index << 1), consumer);	    else	      attributes(tlist, index, consumer);	    index = tlist.nextDataIndex(index);	  }      }    else      attributes(node, consumer);  }}

⌨️ 快捷键说明

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