KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > micronova > util > cc > mime > Parser


1 /* Generated By:JavaCC: Do not edit this line. Parser.java */
2 package com.micronova.util.cc.mime;
3
4 import java.io.*;
5 import java.util.*;
6 import com.micronova.util.*;
7
8 public class Parser implements ParserConstants {
9     public final static String JavaDoc TYPE = "type";
10     public final static String JavaDoc SUBTYPE = "subtype";
11     public final static String JavaDoc PARAMETER = "parameter";
12
13     public static NestedMap parse(String JavaDoc string)
14     {
15         try
16         {
17             Parser parser = new Parser(new StringReader(string));
18
19             return parser.parse(new NestedMap());
20         }
21         catch (Exception JavaDoc e)
22         {
23             e.printStackTrace();
24
25             return null;
26         }
27     }
28
29     public static void main(String JavaDoc arg[])
30     {
31         try
32         {
33             System.out.println("parsed:" + parse(arg[0]));
34         }
35         catch (Exception JavaDoc e)
36         {
37             e.printStackTrace();
38         }
39     }
40
41   final public NestedMap parse(NestedMap map) throws ParseException {
42     String JavaDoc parameterName;
43
44     NestedMap parameter = (NestedMap)map.get(PARAMETER);
45
46     if (parameter == null)
47     {
48         parameter = new NestedMap();
49         map.put(PARAMETER, parameter);
50     }
51     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
52     case WHITESPACE:
53       jj_consume_token(WHITESPACE);
54       break;
55     default:
56       ;
57     }
58     jj_consume_token(MIMETOKEN);
59                map.put(TYPE, token.image.toLowerCase());
60     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
61     case WHITESPACE:
62       jj_consume_token(WHITESPACE);
63       break;
64     default:
65       ;
66     }
67     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
68     case TYPESEPARATOR:
69       jj_consume_token(TYPESEPARATOR);
70       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
71       case WHITESPACE:
72         jj_consume_token(WHITESPACE);
73         break;
74       default:
75         ;
76       }
77       jj_consume_token(MIMETOKEN);
78                map.put(SUBTYPE, token.image.toLowerCase());
79       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
80       case WHITESPACE:
81         jj_consume_token(WHITESPACE);
82         break;
83       default:
84         ;
85       }
86       break;
87     default:
88       ;
89     }
90     label_1:
91     while (true) {
92       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
93       case SEMICOLON:
94         ;
95         break;
96       default:
97         break label_1;
98       }
99       jj_consume_token(SEMICOLON);
100       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
101       case WHITESPACE:
102         jj_consume_token(WHITESPACE);
103         break;
104       default:
105         ;
106       }
107       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
108       case MIMETOKEN:
109         jj_consume_token(MIMETOKEN);
110                    parameterName = token.image.toLowerCase();
111         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
112         case WHITESPACE:
113           jj_consume_token(WHITESPACE);
114           break;
115         default:
116           ;
117         }
118         jj_consume_token(EQUAL);
119         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
120         case WHITESPACE:
121           jj_consume_token(WHITESPACE);
122           break;
123         default:
124           ;
125         }
126         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
127         case MIMETOKEN:
128           jj_consume_token(MIMETOKEN);
129           break;
130         case QUOTED:
131           jj_consume_token(QUOTED);
132           break;
133         default:
134           jj_consume_token(-1);
135           throw new ParseException();
136         }
137        parameter.put(parameterName, token.image);
138         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
139         case WHITESPACE:
140           jj_consume_token(WHITESPACE);
141           break;
142         default:
143           ;
144         }
145         break;
146       default:
147         ;
148       }
149     }
150     jj_consume_token(0);
151    {if (true) return map;}
152     throw new Error JavaDoc("Missing return statement in function");
153   }
154
155   public ParserTokenManager token_source;
156   SimpleCharStream jj_input_stream;
157   public Token token, jj_nt;
158   private int jj_ntk;
159
160   public Parser(java.io.InputStream JavaDoc stream) {
161     jj_input_stream = new SimpleCharStream(stream, 1, 1);
162     token_source = new ParserTokenManager(jj_input_stream);
163     token = new Token();
164     jj_ntk = -1;
165   }
166
167   public void ReInit(java.io.InputStream JavaDoc stream) {
168     jj_input_stream.ReInit(stream, 1, 1);
169     token_source.ReInit(jj_input_stream);
170     token = new Token();
171     jj_ntk = -1;
172   }
173
174   public Parser(java.io.Reader JavaDoc stream) {
175     jj_input_stream = new SimpleCharStream(stream, 1, 1);
176     token_source = new ParserTokenManager(jj_input_stream);
177     token = new Token();
178     jj_ntk = -1;
179   }
180
181   public void ReInit(java.io.Reader JavaDoc stream) {
182     jj_input_stream.ReInit(stream, 1, 1);
183     token_source.ReInit(jj_input_stream);
184     token = new Token();
185     jj_ntk = -1;
186   }
187
188   public Parser(ParserTokenManager tm) {
189     token_source = tm;
190     token = new Token();
191     jj_ntk = -1;
192   }
193
194   public void ReInit(ParserTokenManager tm) {
195     token_source = tm;
196     token = new Token();
197     jj_ntk = -1;
198   }
199
200   final private Token jj_consume_token(int kind) throws ParseException {
201     Token oldToken;
202     if ((oldToken = token).next != null) token = token.next;
203     else token = token.next = token_source.getNextToken();
204     jj_ntk = -1;
205     if (token.kind == kind) {
206       return token;
207     }
208     token = oldToken;
209     throw generateParseException();
210   }
211
212   final public Token getNextToken() {
213     if (token.next != null) token = token.next;
214     else token = token.next = token_source.getNextToken();
215     jj_ntk = -1;
216     return token;
217   }
218
219   final public Token getToken(int index) {
220     Token t = token;
221     for (int i = 0; i < index; i++) {
222       if (t.next != null) t = t.next;
223       else t = t.next = token_source.getNextToken();
224     }
225     return t;
226   }
227
228   final private int jj_ntk() {
229     if ((jj_nt=token.next) == null)
230       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
231     else
232       return (jj_ntk = jj_nt.kind);
233   }
234
235   public ParseException generateParseException() {
236     Token errortok = token.next;
237     int line = errortok.beginLine, column = errortok.beginColumn;
238     String JavaDoc mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
239     return new ParseException("Parse error at line " + line + ", column " + column + ". Encountered: " + mess);
240   }
241
242   final public void enable_tracing() {
243   }
244
245   final public void disable_tracing() {
246   }
247
248 }
249
Popular Tags