KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > source > script > Coder


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.java.source.script;
21
22 import org.netbeans.modules.java.source.pretty.VeryPretty;
23
24 import com.sun.tools.javac.tree.*;
25 import com.sun.tools.javac.tree.JCTree.*;
26 import com.sun.tools.javac.util.*;
27
28 import java.io.*;
29
30 public class Coder extends VeryPretty {
31     public Coder(Context ctx) { super(ctx); }
32     public void generate(JCTree t) throws IOException {
33     reset(16);
34     t.accept(this);
35     writeTo(pc.getWriter());
36     pc.write(";\n");
37     }
38     
39     public void visitIdent(JCIdent tree) {
40     Name n = tree.sym==null ? tree.name : tree.sym.name;
41     for(int i = metavars.length; --i>=0; ) {
42         if(metavars[i]==n) {
43         if(isList[i]<=0) print(metavals[i]);
44         else {
45             print("firstN(");
46             print(metavals[i]);
47             print(", len_");
48             print(String.valueOf(i));
49             print(")");
50         }
51         return;
52         }
53     }
54     super.visitIdent(tree);
55     }
56
57     PluginCompiler pc;
58     protected Name[] metavars;
59     protected String JavaDoc[] metavals;
60     int[] isList;
61 }
62
63
Popular Tags