001/* Generated By:JavaCC: Do not edit this line. StyleSheetParser.java */
002/*
003 * Copyright 2006 - 2012
004 *     Stefan Balev     <stefan.balev@graphstream-project.org>
005 *     Julien Baudry    <julien.baudry@graphstream-project.org>
006 *     Antoine Dutot    <antoine.dutot@graphstream-project.org>
007 *     Yoann Pigné              <yoann.pigne@graphstream-project.org>
008 *     Guilhelm Savin   <guilhelm.savin@graphstream-project.org>
009 * 
010 * This file is part of GraphStream <http://graphstream-project.org>.
011 * 
012 * GraphStream is a library whose purpose is to handle static or dynamic
013 * graph, create them from scratch, file or any source and display them.
014 * 
015 * This program is free software distributed under the terms of two licenses, the
016 * CeCILL-C license that fits European law, and the GNU Lesser General Public
017 * License. You can  use, modify and/ or redistribute the software under the terms
018 * of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
019 * URL <http://www.cecill.info> or under the terms of the GNU LGPL as published by
020 * the Free Software Foundation, either version 3 of the License, or (at your
021 * option) any later version.
022 * 
023 * This program is distributed in the hope that it will be useful, but WITHOUT ANY
024 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
025 * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
026 * 
027 * You should have received a copy of the GNU Lesser General Public License
028 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
029 * 
030 * The fact that you are presently reading this means that you have had
031 * knowledge of the CeCILL-C and LGPL licenses and that you accept their terms.
032 */
033package org.graphstream.ui.graphicGraph.stylesheet.parser;
034
035import java.awt.Color;
036
037import java.io.InputStream;
038import java.io.IOException;
039import java.io.Reader;
040
041import org.graphstream.ui.graphicGraph.stylesheet.*;
042
043import org.graphstream.util.parser.ParseException;
044import org.graphstream.util.parser.SimpleCharStream;
045import org.graphstream.util.parser.Token;
046import org.graphstream.util.parser.TokenMgrError;
047
048@SuppressWarnings("unused")
049public class StyleSheetParser implements StyleSheetParserConstants {
050        /**
051         * The style sheet.
052         */
053        protected StyleSheet stylesheet;
054
055        public StyleSheetParser(StyleSheet stylesheet, InputStream stream) {
056                this(stream);
057                this.stylesheet = stylesheet;
058        }
059
060        public StyleSheetParser(StyleSheet stylesheet, Reader stream) {
061                this(stream);
062                this.stylesheet = stylesheet;
063        }
064
065        public static class Number {
066                public float value;
067                public Style.Units units = Style.Units.PX;
068
069                public Number(float value, Style.Units units) {
070                        this.value = value;
071                        this.units = units;
072                }
073        }
074
075        /**
076         * Closes the parser, closing the opened stream.
077         */
078        public void close() throws IOException {
079                jj_input_stream.close();
080        }
081
082        /*
083         * The parser.
084         */
085        final public void start() throws ParseException {
086                Rule r;
087                label_1: while (true) {
088                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
089                        case GRAPH:
090                        case EDGE:
091                        case NODE:
092                        case SPRITE:
093                        case COMMENT:
094                                ;
095                                break;
096                        default:
097                                jj_la1[0] = jj_gen;
098                                break label_1;
099                        }
100                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
101                        case GRAPH:
102                        case EDGE:
103                        case NODE:
104                        case SPRITE:
105                                r = rule();
106                                stylesheet.addRule(r);
107                                break;
108                        case COMMENT:
109                                jj_consume_token(COMMENT);
110                                break;
111                        default:
112                                jj_la1[1] = jj_gen;
113                                jj_consume_token(-1);
114                                throw new ParseException();
115                        }
116                }
117                jj_consume_token(0);
118        }
119
120        final public Rule rule() throws ParseException {
121                Selector select;
122                Style style;
123                Rule rule;
124                select = select();
125                rule = new Rule(select);
126                style = new Style();
127                rule.setStyle(style);
128                jj_consume_token(LBRACE);
129                styles(style);
130                jj_consume_token(RBRACE);
131                {
132                        if (true)
133                                return rule;
134                }
135                throw new Error("Missing return statement in function");
136        }
137
138        final public void styles(Style style) throws ParseException {
139                label_2: while (true) {
140                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
141                        case FILLMODE:
142                        case FILLCOLOR:
143                        case FILLIMAGE:
144                        case STROKEMODE:
145                        case STROKECOLOR:
146                        case STROKEWIDTH:
147                        case SHADOWMODE:
148                        case SHADOWCOLOR:
149                        case SHADOWWIDTH:
150                        case SHADOWOFFSET:
151                        case TEXTMODE:
152                        case TEXTCOLOR:
153                        case TEXTSTYLE:
154                        case TEXTFONT:
155                        case TEXTSIZE:
156                        case TEXTVISIBILITYMODE:
157                        case TEXTVISIBILITY:
158                        case TEXTBACKGROUNDMODE:
159                        case TEXTBACKGROUNDCOLOR:
160                        case TEXTOFFSET:
161                        case TEXTPADDING:
162                        case ICONMODE:
163                        case ICON:
164                        case PADDING:
165                        case ZINDEX:
166                        case VISIBILITYMODE:
167                        case VISIBILITY:
168                        case SHAPE:
169                        case SIZE:
170                        case SIZEMODE:
171                        case SHAPEPOINTS:
172                        case TEXTALIGNMENT:
173                        case JCOMPONENT:
174                        case ARROWIMGURL:
175                        case ARROWSIZE:
176                        case ARROWSHAPE:
177                        case SPRITEORIENT:
178                        case CANVASCOLOR:
179                        case COMMENT:
180                                ;
181                                break;
182                        default:
183                                jj_la1[2] = jj_gen;
184                                break label_2;
185                        }
186                        style(style);
187                }
188        }
189
190        final public void stylesStart(Style style) throws ParseException {
191                label_3: while (true) {
192                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
193                        case FILLMODE:
194                        case FILLCOLOR:
195                        case FILLIMAGE:
196                        case STROKEMODE:
197                        case STROKECOLOR:
198                        case STROKEWIDTH:
199                        case SHADOWMODE:
200                        case SHADOWCOLOR:
201                        case SHADOWWIDTH:
202                        case SHADOWOFFSET:
203                        case TEXTMODE:
204                        case TEXTCOLOR:
205                        case TEXTSTYLE:
206                        case TEXTFONT:
207                        case TEXTSIZE:
208                        case TEXTVISIBILITYMODE:
209                        case TEXTVISIBILITY:
210                        case TEXTBACKGROUNDMODE:
211                        case TEXTBACKGROUNDCOLOR:
212                        case TEXTOFFSET:
213                        case TEXTPADDING:
214                        case ICONMODE:
215                        case ICON:
216                        case PADDING:
217                        case ZINDEX:
218                        case VISIBILITYMODE:
219                        case VISIBILITY:
220                        case SHAPE:
221                        case SIZE:
222                        case SIZEMODE:
223                        case SHAPEPOINTS:
224                        case TEXTALIGNMENT:
225                        case JCOMPONENT:
226                        case ARROWIMGURL:
227                        case ARROWSIZE:
228                        case ARROWSHAPE:
229                        case SPRITEORIENT:
230                        case CANVASCOLOR:
231                        case COMMENT:
232                                ;
233                                break;
234                        default:
235                                jj_la1[3] = jj_gen;
236                                break label_3;
237                        }
238                        style(style);
239                }
240                jj_consume_token(0);
241        }
242
243        final public Selector select() throws ParseException {
244                Token t;
245                Selector select;
246                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
247                case GRAPH:
248                        jj_consume_token(GRAPH);
249                        select = new Selector(Selector.Type.GRAPH);
250                        break;
251                case NODE:
252                        jj_consume_token(NODE);
253                        select = new Selector(Selector.Type.NODE);
254                        break;
255                case EDGE:
256                        jj_consume_token(EDGE);
257                        select = new Selector(Selector.Type.EDGE);
258                        break;
259                case SPRITE:
260                        jj_consume_token(SPRITE);
261                        select = new Selector(Selector.Type.SPRITE);
262                        break;
263                default:
264                        jj_la1[4] = jj_gen;
265                        jj_consume_token(-1);
266                        throw new ParseException();
267                }
268                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
269                case DOT:
270                case SHARP:
271                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
272                        case SHARP:
273                                jj_consume_token(SHARP);
274                                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
275                                case IDENTIFIER:
276                                        t = jj_consume_token(IDENTIFIER);
277                                        select.setId(t.image);
278                                        break;
279                                case STRING:
280                                        t = jj_consume_token(STRING);
281                                        select.setId(t.image.substring(1, t.image.length() - 1));
282                                        break;
283                                case REAL:
284                                        t = jj_consume_token(REAL);
285                                        select.setId(t.image.toString());
286                                        break;
287                                default:
288                                        jj_la1[5] = jj_gen;
289                                        jj_consume_token(-1);
290                                        throw new ParseException();
291                                }
292                                break;
293                        case DOT:
294                                jj_consume_token(DOT);
295                                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
296                                case IDENTIFIER:
297                                        t = jj_consume_token(IDENTIFIER);
298                                        select.setClass(t.image);
299                                        break;
300                                case CLICKED:
301                                        t = jj_consume_token(CLICKED);
302                                        select.setClass("clicked");
303                                        break;
304                                case SELECTED:
305                                        t = jj_consume_token(SELECTED);
306                                        select.setClass("selected");
307                                        break;
308                                case STRING:
309                                        t = jj_consume_token(STRING);
310                                        select.setClass(t.image.substring(1, t.image.length() - 1));
311                                        break;
312                                default:
313                                        jj_la1[6] = jj_gen;
314                                        jj_consume_token(-1);
315                                        throw new ParseException();
316                                }
317                                break;
318                        default:
319                                jj_la1[7] = jj_gen;
320                                jj_consume_token(-1);
321                                throw new ParseException();
322                        }
323                        break;
324                default:
325                        jj_la1[8] = jj_gen;
326                        ;
327                }
328                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
329                case COLON:
330                        jj_consume_token(COLON);
331                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
332                        case CLICKED:
333                                jj_consume_token(CLICKED);
334                                select.setPseudoClass("clicked");
335                                break;
336                        case SELECTED:
337                                jj_consume_token(SELECTED);
338                                select.setPseudoClass("selected");
339                                break;
340                        case STRING:
341                                t = jj_consume_token(STRING);
342                                select.setPseudoClass(t.image.substring(1, t.image.length() - 1));
343                                break;
344                        case IDENTIFIER:
345                                t = jj_consume_token(IDENTIFIER);
346                                select.setPseudoClass(t.image);
347                                break;
348                        default:
349                                jj_la1[9] = jj_gen;
350                                jj_consume_token(-1);
351                                throw new ParseException();
352                        }
353                        break;
354                default:
355                        jj_la1[10] = jj_gen;
356                        ;
357                }
358                {
359                        if (true)
360                                return select;
361                }
362                throw new Error("Missing return statement in function");
363        }
364
365        final public void style(Style style) throws ParseException {
366                Color color;
367                Colors colors;
368                String url;
369                Value value;
370                Values values;
371                Style.FillMode fillMode;
372                Style.StrokeMode strokeMode;
373                Style.ShadowMode shadowMode;
374                Style.TextMode textMode;
375                Style.TextVisibilityMode textVisMode;
376                Style.TextBackgroundMode textBgMode;
377                Style.TextStyle textStyle;
378                Style.TextAlignment textAlignment;
379                Style.IconMode iconMode;
380                Style.VisibilityMode visMode;
381                Style.SizeMode sizeMode;
382                Style.Shape shape;
383                Style.SpriteOrientation spriteOrient;
384                Style.ArrowShape arrowShape;
385                Style.JComponents component;
386                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
387                case COMMENT:
388                        jj_consume_token(COMMENT);
389                        break;
390                case ZINDEX:
391                        jj_consume_token(ZINDEX);
392                        jj_consume_token(COLON);
393                        value = value();
394                        jj_consume_token(SEMICOLON);
395                        style.setValue("z-index", new Integer((int) value.value));
396                        break;
397                case FILLMODE:
398                        jj_consume_token(FILLMODE);
399                        jj_consume_token(COLON);
400                        fillMode = fillMode();
401                        jj_consume_token(SEMICOLON);
402                        style.setValue("fill-mode", fillMode);
403                        break;
404                case FILLCOLOR:
405                        jj_consume_token(FILLCOLOR);
406                        jj_consume_token(COLON);
407                        colors = colors();
408                        jj_consume_token(SEMICOLON);
409                        style.setValue("fill-color", colors);
410                        break;
411                case FILLIMAGE:
412                        jj_consume_token(FILLIMAGE);
413                        jj_consume_token(COLON);
414                        url = url();
415                        jj_consume_token(SEMICOLON);
416                        style.setValue("fill-image", url);
417                        break;
418                case STROKEMODE:
419                        jj_consume_token(STROKEMODE);
420                        jj_consume_token(COLON);
421                        strokeMode = strokeMode();
422                        jj_consume_token(SEMICOLON);
423                        style.setValue("stroke-mode", strokeMode);
424                        break;
425                case STROKECOLOR:
426                        jj_consume_token(STROKECOLOR);
427                        jj_consume_token(COLON);
428                        colors = colors();
429                        jj_consume_token(SEMICOLON);
430                        style.setValue("stroke-color", colors);
431                        break;
432                case STROKEWIDTH:
433                        jj_consume_token(STROKEWIDTH);
434                        jj_consume_token(COLON);
435                        value = value();
436                        jj_consume_token(SEMICOLON);
437                        style.setValue("stroke-width", value);
438                        break;
439                case SHADOWMODE:
440                        jj_consume_token(SHADOWMODE);
441                        jj_consume_token(COLON);
442                        shadowMode = shadowMode();
443                        jj_consume_token(SEMICOLON);
444                        style.setValue("shadow-mode", shadowMode);
445                        break;
446                case SHADOWCOLOR:
447                        jj_consume_token(SHADOWCOLOR);
448                        jj_consume_token(COLON);
449                        colors = colors();
450                        jj_consume_token(SEMICOLON);
451                        style.setValue("shadow-color", colors);
452                        break;
453                case SHADOWWIDTH:
454                        jj_consume_token(SHADOWWIDTH);
455                        jj_consume_token(COLON);
456                        value = value();
457                        jj_consume_token(SEMICOLON);
458                        style.setValue("shadow-width", value);
459                        break;
460                case SHADOWOFFSET:
461                        jj_consume_token(SHADOWOFFSET);
462                        jj_consume_token(COLON);
463                        values = values();
464                        jj_consume_token(SEMICOLON);
465                        style.setValue("shadow-offset", values);
466                        break;
467                case PADDING:
468                        jj_consume_token(PADDING);
469                        jj_consume_token(COLON);
470                        values = values();
471                        jj_consume_token(SEMICOLON);
472                        style.setValue("padding", values);
473                        break;
474                case TEXTMODE:
475                        jj_consume_token(TEXTMODE);
476                        jj_consume_token(COLON);
477                        textMode = textMode();
478                        jj_consume_token(SEMICOLON);
479                        style.setValue("text-mode", textMode);
480                        break;
481                case TEXTVISIBILITYMODE:
482                        jj_consume_token(TEXTVISIBILITYMODE);
483                        jj_consume_token(COLON);
484                        textVisMode = textVisMode();
485                        jj_consume_token(SEMICOLON);
486                        style.setValue("text-visibility-mode", textVisMode);
487                        break;
488                case TEXTVISIBILITY:
489                        jj_consume_token(TEXTVISIBILITY);
490                        jj_consume_token(COLON);
491                        values = values();
492                        jj_consume_token(SEMICOLON);
493                        style.setValue("text-visibility", values);
494                        break;
495                case TEXTBACKGROUNDMODE:
496                        jj_consume_token(TEXTBACKGROUNDMODE);
497                        jj_consume_token(COLON);
498                        textBgMode = textBgMode();
499                        jj_consume_token(SEMICOLON);
500                        style.setValue("text-background-mode", textBgMode);
501                        break;
502                case TEXTCOLOR:
503                        jj_consume_token(TEXTCOLOR);
504                        jj_consume_token(COLON);
505                        colors = colors();
506                        jj_consume_token(SEMICOLON);
507                        style.setValue("text-color", colors);
508                        break;
509                case TEXTBACKGROUNDCOLOR:
510                        jj_consume_token(TEXTBACKGROUNDCOLOR);
511                        jj_consume_token(COLON);
512                        colors = colors();
513                        jj_consume_token(SEMICOLON);
514                        style.setValue("text-background-color", colors);
515                        break;
516                case TEXTSTYLE:
517                        jj_consume_token(TEXTSTYLE);
518                        jj_consume_token(COLON);
519                        textStyle = textStyle();
520                        jj_consume_token(SEMICOLON);
521                        style.setValue("text-style", textStyle);
522                        break;
523                case TEXTFONT:
524                        jj_consume_token(TEXTFONT);
525                        jj_consume_token(COLON);
526                        url = font();
527                        jj_consume_token(SEMICOLON);
528                        style.setValue("text-font", url);
529                        break;
530                case TEXTSIZE:
531                        jj_consume_token(TEXTSIZE);
532                        jj_consume_token(COLON);
533                        value = value();
534                        jj_consume_token(SEMICOLON);
535                        style.setValue("text-size", value);
536                        break;
537                case TEXTALIGNMENT:
538                        jj_consume_token(TEXTALIGNMENT);
539                        jj_consume_token(COLON);
540                        textAlignment = textAlign();
541                        jj_consume_token(SEMICOLON);
542                        style.setValue("text-alignment", textAlignment);
543                        break;
544                case TEXTOFFSET:
545                        jj_consume_token(TEXTOFFSET);
546                        jj_consume_token(COLON);
547                        values = values();
548                        jj_consume_token(SEMICOLON);
549                        style.setValue("text-offset", values);
550                        break;
551                case TEXTPADDING:
552                        jj_consume_token(TEXTPADDING);
553                        jj_consume_token(COLON);
554                        values = values();
555                        jj_consume_token(SEMICOLON);
556                        style.setValue("text-padding", values);
557                        break;
558                case ICONMODE:
559                        jj_consume_token(ICONMODE);
560                        jj_consume_token(COLON);
561                        iconMode = iconMode();
562                        jj_consume_token(SEMICOLON);
563                        style.setValue("icon-mode", iconMode);
564                        break;
565                case ICON:
566                        jj_consume_token(ICON);
567                        jj_consume_token(COLON);
568                        url = icon();
569                        jj_consume_token(SEMICOLON);
570                        style.setValue("icon", url);
571                        break;
572                case JCOMPONENT:
573                        jj_consume_token(JCOMPONENT);
574                        jj_consume_token(COLON);
575                        component = jcomponent();
576                        jj_consume_token(SEMICOLON);
577                        style.setValue("jcomponent", component);
578                        break;
579                case VISIBILITYMODE:
580                        jj_consume_token(VISIBILITYMODE);
581                        jj_consume_token(COLON);
582                        visMode = visMode();
583                        jj_consume_token(SEMICOLON);
584                        style.setValue("visibility-mode", visMode);
585                        break;
586                case VISIBILITY:
587                        jj_consume_token(VISIBILITY);
588                        jj_consume_token(COLON);
589                        values = values();
590                        jj_consume_token(SEMICOLON);
591                        style.setValue("visibility", values);
592                        break;
593                case SIZEMODE:
594                        jj_consume_token(SIZEMODE);
595                        jj_consume_token(COLON);
596                        sizeMode = sizeMode();
597                        jj_consume_token(SEMICOLON);
598                        style.setValue("size-mode", sizeMode);
599                        break;
600                case SIZE:
601                        jj_consume_token(SIZE);
602                        jj_consume_token(COLON);
603                        values = values();
604                        jj_consume_token(SEMICOLON);
605                        style.setValue("size", values);
606                        break;
607                case SHAPEPOINTS:
608                        jj_consume_token(SHAPEPOINTS);
609                        jj_consume_token(COLON);
610                        values = values();
611                        jj_consume_token(SEMICOLON);
612                        style.setValue("shape-points", values);
613                        break;
614                case SHAPE:
615                        jj_consume_token(SHAPE);
616                        jj_consume_token(COLON);
617                        shape = shape();
618                        jj_consume_token(SEMICOLON);
619                        style.setValue("shape", shape);
620                        break;
621                case SPRITEORIENT:
622                        jj_consume_token(SPRITEORIENT);
623                        jj_consume_token(COLON);
624                        spriteOrient = spriteOrient();
625                        jj_consume_token(SEMICOLON);
626                        style.setValue("sprite-orientation", spriteOrient);
627                        break;
628                case ARROWSHAPE:
629                        jj_consume_token(ARROWSHAPE);
630                        jj_consume_token(COLON);
631                        arrowShape = arrowShape();
632                        jj_consume_token(SEMICOLON);
633                        style.setValue("arrow-shape", arrowShape);
634                        break;
635                case ARROWIMGURL:
636                        jj_consume_token(ARROWIMGURL);
637                        jj_consume_token(COLON);
638                        url = url();
639                        jj_consume_token(SEMICOLON);
640                        style.setValue("arrow-image", url);
641                        break;
642                case ARROWSIZE:
643                        jj_consume_token(ARROWSIZE);
644                        jj_consume_token(COLON);
645                        values = values();
646                        jj_consume_token(SEMICOLON);
647                        style.setValue("arrow-size", values);
648                        break;
649                case CANVASCOLOR:
650                        jj_consume_token(CANVASCOLOR);
651                        jj_consume_token(COLON);
652                        colors = colors();
653                        jj_consume_token(SEMICOLON);
654                        style.setValue("canvas-color", colors);
655                        break;
656                default:
657                        jj_la1[11] = jj_gen;
658                        jj_consume_token(-1);
659                        throw new ParseException();
660                }
661        }
662
663        final public Value value() throws ParseException {
664                Token t;
665                Style.Units units = Style.Units.PX;
666                Value value = null;
667                t = jj_consume_token(REAL);
668                String nb = t.image.toLowerCase();
669
670                if (nb.endsWith("px")) {
671                        units = Style.Units.PX;
672                        nb = nb.substring(0, nb.length() - 2);
673                } else if (nb.endsWith("gu")) {
674                        units = Style.Units.GU;
675                        nb = nb.substring(0, nb.length() - 2);
676                } else if (nb.endsWith("%")) {
677                        units = Style.Units.PERCENTS;
678                        nb = nb.substring(0, nb.length() - 1);
679                }
680
681                try {
682                        value = new Value(units, Float.parseFloat(nb));
683                } catch (NumberFormatException e) {
684                        generateParseException();
685                }
686                {
687                        if (true)
688                                return value;
689                }
690                throw new Error("Missing return statement in function");
691        }
692
693        final public Values values() throws ParseException {
694                Values values;
695                Value value;
696                value = value();
697                values = new Values(value.units, value.value);
698                label_4: while (true) {
699                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
700                        case COMA:
701                                ;
702                                break;
703                        default:
704                                jj_la1[12] = jj_gen;
705                                break label_4;
706                        }
707                        jj_consume_token(COMA);
708                        value = value();
709                        values.addValues(value.value);
710                }
711                {
712                        if (true)
713                                return values;
714                }
715                throw new Error("Missing return statement in function");
716        }
717
718        final public String url() throws ParseException {
719                Token t;
720                jj_consume_token(URL);
721                jj_consume_token(LPAREN);
722                t = jj_consume_token(STRING);
723                jj_consume_token(RPAREN);
724                {
725                        if (true)
726                                return t.image.substring(1, t.image.length() - 1);
727                }
728                throw new Error("Missing return statement in function");
729        }
730
731        final public String icon() throws ParseException {
732                String s;
733                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
734                case DYNICON:
735                        jj_consume_token(DYNICON);
736                        {
737                                if (true)
738                                        return "dynamic";
739                        }
740                        break;
741                case URL:
742                        s = url();
743                        {
744                                if (true)
745                                        return s;
746                        }
747                        break;
748                default:
749                        jj_la1[13] = jj_gen;
750                        jj_consume_token(-1);
751                        throw new ParseException();
752                }
753                throw new Error("Missing return statement in function");
754        }
755
756        final public String font() throws ParseException {
757                Token t;
758                String s;
759                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
760                case IDENTIFIER:
761                        t = jj_consume_token(IDENTIFIER);
762                        s = t.image;
763                        break;
764                case STRING:
765                        t = jj_consume_token(STRING);
766                        s = t.image.substring(1, t.image.length() - 1);
767                        break;
768                default:
769                        jj_la1[14] = jj_gen;
770                        jj_consume_token(-1);
771                        throw new ParseException();
772                }
773                {
774                        if (true)
775                                return s;
776                }
777                throw new Error("Missing return statement in function");
778        }
779
780        final public Color color() throws ParseException {
781                Token t;
782                String s;
783                Token r, g, b, a;
784                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
785                case RGB:
786                        jj_consume_token(RGB);
787                        jj_consume_token(LPAREN);
788                        r = jj_consume_token(REAL);
789                        jj_consume_token(COMA);
790                        g = jj_consume_token(REAL);
791                        jj_consume_token(COMA);
792                        b = jj_consume_token(REAL);
793                        jj_consume_token(RPAREN);
794                        s = String.format("rgb(%s,%s,%s)", r.image, g.image, b.image);
795                        break;
796                case RGBA:
797                        jj_consume_token(RGBA);
798                        jj_consume_token(LPAREN);
799                        r = jj_consume_token(REAL);
800                        jj_consume_token(COMA);
801                        g = jj_consume_token(REAL);
802                        jj_consume_token(COMA);
803                        b = jj_consume_token(REAL);
804                        jj_consume_token(COMA);
805                        a = jj_consume_token(REAL);
806                        jj_consume_token(RPAREN);
807                        s = String.format("rgba(%s,%s,%s,%s)", r.image, g.image, b.image,
808                                        a.image);
809                        break;
810                case HTMLCOLOR:
811                        t = jj_consume_token(HTMLCOLOR);
812                        s = t.image;
813                        break;
814                case IDENTIFIER:
815                        t = jj_consume_token(IDENTIFIER);
816                        s = t.image;
817                        break;
818                case STRING:
819                        t = jj_consume_token(STRING);
820                        s = t.image.substring(1, t.image.length() - 1);
821                        break;
822                default:
823                        jj_la1[15] = jj_gen;
824                        jj_consume_token(-1);
825                        throw new ParseException();
826                }
827                Color color = Style.convertColor(s);
828                if (color == null)
829                        color = Color.BLACK;
830                {
831                        if (true)
832                                return color;
833                }
834                throw new Error("Missing return statement in function");
835        }
836
837        final public Colors colors() throws ParseException {
838                Colors colors = new Colors();
839                Color color;
840                color = color();
841                colors.add(color);
842                label_5: while (true) {
843                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
844                        case COMA:
845                                ;
846                                break;
847                        default:
848                                jj_la1[16] = jj_gen;
849                                break label_5;
850                        }
851                        jj_consume_token(COMA);
852                        color = color();
853                        colors.add(color);
854                }
855                {
856                        if (true)
857                                return colors;
858                }
859                throw new Error("Missing return statement in function");
860        }
861
862        final public Style.FillMode fillMode() throws ParseException {
863                Style.FillMode m;
864                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
865                case NONE:
866                        jj_consume_token(NONE);
867                        m = Style.FillMode.NONE;
868                        break;
869                case PLAIN:
870                        jj_consume_token(PLAIN);
871                        m = Style.FillMode.PLAIN;
872                        break;
873                case DYNPLAIN:
874                        jj_consume_token(DYNPLAIN);
875                        m = Style.FillMode.DYN_PLAIN;
876                        break;
877                case GRADIENTRADIAL:
878                        jj_consume_token(GRADIENTRADIAL);
879                        m = Style.FillMode.GRADIENT_RADIAL;
880                        break;
881                case GRADIENTVERTICAL:
882                        jj_consume_token(GRADIENTVERTICAL);
883                        m = Style.FillMode.GRADIENT_VERTICAL;
884                        break;
885                case GRADIENTHORIZONTAL:
886                        jj_consume_token(GRADIENTHORIZONTAL);
887                        m = Style.FillMode.GRADIENT_HORIZONTAL;
888                        break;
889                case GRADIENTDIAGONAL1:
890                        jj_consume_token(GRADIENTDIAGONAL1);
891                        m = Style.FillMode.GRADIENT_DIAGONAL1;
892                        break;
893                case GRADIENTDIAGONAL2:
894                        jj_consume_token(GRADIENTDIAGONAL2);
895                        m = Style.FillMode.GRADIENT_DIAGONAL2;
896                        break;
897                case IMAGETILED:
898                        jj_consume_token(IMAGETILED);
899                        m = Style.FillMode.IMAGE_TILED;
900                        break;
901                case IMAGESCALED:
902                        jj_consume_token(IMAGESCALED);
903                        m = Style.FillMode.IMAGE_SCALED;
904                        break;
905                case IMAGESCALEDRATIOMAX:
906                        jj_consume_token(IMAGESCALEDRATIOMAX);
907                        m = Style.FillMode.IMAGE_SCALED_RATIO_MAX;
908                        break;
909                case IMAGESCALEDRATIOMIN:
910                        jj_consume_token(IMAGESCALEDRATIOMIN);
911                        m = Style.FillMode.IMAGE_SCALED_RATIO_MIN;
912                        break;
913                default:
914                        jj_la1[17] = jj_gen;
915                        jj_consume_token(-1);
916                        throw new ParseException();
917                }
918                {
919                        if (true)
920                                return m;
921                }
922                throw new Error("Missing return statement in function");
923        }
924
925        final public Style.StrokeMode strokeMode() throws ParseException {
926                Style.StrokeMode m;
927                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
928                case NONE:
929                        jj_consume_token(NONE);
930                        m = Style.StrokeMode.NONE;
931                        break;
932                case PLAIN:
933                        jj_consume_token(PLAIN);
934                        m = Style.StrokeMode.PLAIN;
935                        break;
936                case DASHES:
937                        jj_consume_token(DASHES);
938                        m = Style.StrokeMode.DASHES;
939                        break;
940                case DOTS:
941                        jj_consume_token(DOTS);
942                        m = Style.StrokeMode.DOTS;
943                        break;
944                case DOUBLE:
945                        jj_consume_token(DOUBLE);
946                        m = Style.StrokeMode.DOUBLE;
947                        break;
948                default:
949                        jj_la1[18] = jj_gen;
950                        jj_consume_token(-1);
951                        throw new ParseException();
952                }
953                {
954                        if (true)
955                                return m;
956                }
957                throw new Error("Missing return statement in function");
958        }
959
960        final public Style.ShadowMode shadowMode() throws ParseException {
961                Style.ShadowMode s;
962                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
963                case NONE:
964                        jj_consume_token(NONE);
965                        s = Style.ShadowMode.NONE;
966                        break;
967                case PLAIN:
968                        jj_consume_token(PLAIN);
969                        s = Style.ShadowMode.PLAIN;
970                        break;
971                case GRADIENTRADIAL:
972                        jj_consume_token(GRADIENTRADIAL);
973                        s = Style.ShadowMode.GRADIENT_RADIAL;
974                        break;
975                case GRADIENTHORIZONTAL:
976                        jj_consume_token(GRADIENTHORIZONTAL);
977                        s = Style.ShadowMode.GRADIENT_HORIZONTAL;
978                        break;
979                case GRADIENTVERTICAL:
980                        jj_consume_token(GRADIENTVERTICAL);
981                        s = Style.ShadowMode.GRADIENT_VERTICAL;
982                        break;
983                case GRADIENTDIAGONAL1:
984                        jj_consume_token(GRADIENTDIAGONAL1);
985                        s = Style.ShadowMode.GRADIENT_DIAGONAL1;
986                        break;
987                case GRADIENTDIAGONAL2:
988                        jj_consume_token(GRADIENTDIAGONAL2);
989                        s = Style.ShadowMode.GRADIENT_DIAGONAL2;
990                        break;
991                default:
992                        jj_la1[19] = jj_gen;
993                        jj_consume_token(-1);
994                        throw new ParseException();
995                }
996                {
997                        if (true)
998                                return s;
999                }
1000                throw new Error("Missing return statement in function");
1001        }
1002
1003        final public Style.TextMode textMode() throws ParseException {
1004                Style.TextMode m;
1005                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1006                case NORMAL:
1007                        jj_consume_token(NORMAL);
1008                        m = Style.TextMode.NORMAL;
1009                        break;
1010                case HIDDEN:
1011                        jj_consume_token(HIDDEN);
1012                        m = Style.TextMode.HIDDEN;
1013                        break;
1014                case TRUNCATED:
1015                        jj_consume_token(TRUNCATED);
1016                        m = Style.TextMode.TRUNCATED;
1017                        break;
1018                default:
1019                        jj_la1[20] = jj_gen;
1020                        jj_consume_token(-1);
1021                        throw new ParseException();
1022                }
1023                {
1024                        if (true)
1025                                return m;
1026                }
1027                throw new Error("Missing return statement in function");
1028        }
1029
1030        final public Style.TextVisibilityMode textVisMode() throws ParseException {
1031                Style.TextVisibilityMode m;
1032                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1033                case NORMAL:
1034                        jj_consume_token(NORMAL);
1035                        m = Style.TextVisibilityMode.NORMAL;
1036                        break;
1037                case HIDDEN:
1038                        jj_consume_token(HIDDEN);
1039                        m = Style.TextVisibilityMode.HIDDEN;
1040                        break;
1041                case ATZOOM:
1042                        jj_consume_token(ATZOOM);
1043                        m = Style.TextVisibilityMode.AT_ZOOM;
1044                        break;
1045                case UNDERZOOM:
1046                        jj_consume_token(UNDERZOOM);
1047                        m = Style.TextVisibilityMode.UNDER_ZOOM;
1048                        break;
1049                case OVERZOOM:
1050                        jj_consume_token(OVERZOOM);
1051                        m = Style.TextVisibilityMode.OVER_ZOOM;
1052                        break;
1053                case ZOOMRANGE:
1054                        jj_consume_token(ZOOMRANGE);
1055                        m = Style.TextVisibilityMode.ZOOM_RANGE;
1056                        break;
1057                case ZOOMS:
1058                        jj_consume_token(ZOOMS);
1059                        m = Style.TextVisibilityMode.ZOOMS;
1060                        break;
1061                default:
1062                        jj_la1[21] = jj_gen;
1063                        jj_consume_token(-1);
1064                        throw new ParseException();
1065                }
1066                {
1067                        if (true)
1068                                return m;
1069                }
1070                throw new Error("Missing return statement in function");
1071        }
1072
1073        final public Style.TextBackgroundMode textBgMode() throws ParseException {
1074                Style.TextBackgroundMode m;
1075                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1076                case NONE:
1077                        jj_consume_token(NONE);
1078                        m = Style.TextBackgroundMode.NONE;
1079                        break;
1080                case PLAIN:
1081                        jj_consume_token(PLAIN);
1082                        m = Style.TextBackgroundMode.PLAIN;
1083                        break;
1084                case ROUNDEDBOX:
1085                        jj_consume_token(ROUNDEDBOX);
1086                        m = Style.TextBackgroundMode.ROUNDEDBOX;
1087                        break;
1088                default:
1089                        jj_la1[22] = jj_gen;
1090                        jj_consume_token(-1);
1091                        throw new ParseException();
1092                }
1093                {
1094                        if (true)
1095                                return m;
1096                }
1097                throw new Error("Missing return statement in function");
1098        }
1099
1100        final public Style.TextStyle textStyle() throws ParseException {
1101                Style.TextStyle t;
1102                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1103                case NORMAL:
1104                        jj_consume_token(NORMAL);
1105                        t = Style.TextStyle.NORMAL;
1106                        break;
1107                case BOLD:
1108                        jj_consume_token(BOLD);
1109                        t = Style.TextStyle.BOLD;
1110                        break;
1111                case ITALIC:
1112                        jj_consume_token(ITALIC);
1113                        t = Style.TextStyle.ITALIC;
1114                        break;
1115                case BOLD_ITALIC:
1116                        jj_consume_token(BOLD_ITALIC);
1117                        t = Style.TextStyle.BOLD_ITALIC;
1118                        break;
1119                default:
1120                        jj_la1[23] = jj_gen;
1121                        jj_consume_token(-1);
1122                        throw new ParseException();
1123                }
1124                {
1125                        if (true)
1126                                return t;
1127                }
1128                throw new Error("Missing return statement in function");
1129        }
1130
1131        final public Style.SizeMode sizeMode() throws ParseException {
1132                Style.SizeMode m;
1133                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1134                case NORMAL:
1135                        jj_consume_token(NORMAL);
1136                        m = Style.SizeMode.NORMAL;
1137                        break;
1138                case FIT:
1139                        jj_consume_token(FIT);
1140                        m = Style.SizeMode.FIT;
1141                        break;
1142                case DYNSIZE:
1143                        jj_consume_token(DYNSIZE);
1144                        m = Style.SizeMode.DYN_SIZE;
1145                        break;
1146                default:
1147                        jj_la1[24] = jj_gen;
1148                        jj_consume_token(-1);
1149                        throw new ParseException();
1150                }
1151                {
1152                        if (true)
1153                                return m;
1154                }
1155                throw new Error("Missing return statement in function");
1156        }
1157
1158        final public Style.TextAlignment textAlign() throws ParseException {
1159                Style.TextAlignment t;
1160                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1161                case CENTER:
1162                        jj_consume_token(CENTER);
1163                        t = Style.TextAlignment.CENTER;
1164                        break;
1165                case LEFT:
1166                        jj_consume_token(LEFT);
1167                        t = Style.TextAlignment.LEFT;
1168                        break;
1169                case RIGHT:
1170                        jj_consume_token(RIGHT);
1171                        t = Style.TextAlignment.RIGHT;
1172                        break;
1173                case ATLEFT:
1174                        jj_consume_token(ATLEFT);
1175                        t = Style.TextAlignment.AT_LEFT;
1176                        break;
1177                case ATRIGHT:
1178                        jj_consume_token(ATRIGHT);
1179                        t = Style.TextAlignment.AT_RIGHT;
1180                        break;
1181                case UNDER:
1182                        jj_consume_token(UNDER);
1183                        t = Style.TextAlignment.UNDER;
1184                        break;
1185                case ABOVE:
1186                        jj_consume_token(ABOVE);
1187                        t = Style.TextAlignment.ABOVE;
1188                        break;
1189                case JUSTIFY:
1190                        jj_consume_token(JUSTIFY);
1191                        t = Style.TextAlignment.JUSTIFY;
1192                        break;
1193                case ALONG:
1194                        jj_consume_token(ALONG);
1195                        t = Style.TextAlignment.ALONG;
1196                        break;
1197                default:
1198                        jj_la1[25] = jj_gen;
1199                        jj_consume_token(-1);
1200                        throw new ParseException();
1201                }
1202                {
1203                        if (true)
1204                                return t;
1205                }
1206                throw new Error("Missing return statement in function");
1207        }
1208
1209        final public Style.IconMode iconMode() throws ParseException {
1210                Style.IconMode i;
1211                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1212                case NONE:
1213                        jj_consume_token(NONE);
1214                        i = Style.IconMode.NONE;
1215                        break;
1216                case ATLEFT:
1217                        jj_consume_token(ATLEFT);
1218                        i = Style.IconMode.AT_LEFT;
1219                        break;
1220                case ATRIGHT:
1221                        jj_consume_token(ATRIGHT);
1222                        i = Style.IconMode.AT_RIGHT;
1223                        break;
1224                case ABOVE:
1225                        jj_consume_token(ABOVE);
1226                        i = Style.IconMode.ABOVE;
1227                        break;
1228                case UNDER:
1229                        jj_consume_token(UNDER);
1230                        i = Style.IconMode.UNDER;
1231                        break;
1232                default:
1233                        jj_la1[26] = jj_gen;
1234                        jj_consume_token(-1);
1235                        throw new ParseException();
1236                }
1237                {
1238                        if (true)
1239                                return i;
1240                }
1241                throw new Error("Missing return statement in function");
1242        }
1243
1244        final public Style.VisibilityMode visMode() throws ParseException {
1245                Style.VisibilityMode m;
1246                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1247                case NORMAL:
1248                        jj_consume_token(NORMAL);
1249                        m = Style.VisibilityMode.NORMAL;
1250                        break;
1251                case HIDDEN:
1252                        jj_consume_token(HIDDEN);
1253                        m = Style.VisibilityMode.HIDDEN;
1254                        break;
1255                case ATZOOM:
1256                        jj_consume_token(ATZOOM);
1257                        m = Style.VisibilityMode.AT_ZOOM;
1258                        break;
1259                case UNDERZOOM:
1260                        jj_consume_token(UNDERZOOM);
1261                        m = Style.VisibilityMode.UNDER_ZOOM;
1262                        break;
1263                case OVERZOOM:
1264                        jj_consume_token(OVERZOOM);
1265                        m = Style.VisibilityMode.OVER_ZOOM;
1266                        break;
1267                case ZOOMRANGE:
1268                        jj_consume_token(ZOOMRANGE);
1269                        m = Style.VisibilityMode.ZOOM_RANGE;
1270                        break;
1271                case ZOOMS:
1272                        jj_consume_token(ZOOMS);
1273                        m = Style.VisibilityMode.ZOOMS;
1274                        break;
1275                default:
1276                        jj_la1[27] = jj_gen;
1277                        jj_consume_token(-1);
1278                        throw new ParseException();
1279                }
1280                {
1281                        if (true)
1282                                return m;
1283                }
1284                throw new Error("Missing return statement in function");
1285        }
1286
1287        final public Style.Shape shape() throws ParseException {
1288                Style.Shape s;
1289                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1290                case CIRCLE:
1291                        jj_consume_token(CIRCLE);
1292                        s = Style.Shape.CIRCLE;
1293                        break;
1294                case BOX:
1295                        jj_consume_token(BOX);
1296                        s = Style.Shape.BOX;
1297                        break;
1298                case ROUNDEDBOX:
1299                        jj_consume_token(ROUNDEDBOX);
1300                        s = Style.Shape.ROUNDED_BOX;
1301                        break;
1302                case TRIANGLE:
1303                        jj_consume_token(TRIANGLE);
1304                        s = Style.Shape.TRIANGLE;
1305                        break;
1306                case CROSS:
1307                        jj_consume_token(CROSS);
1308                        s = Style.Shape.CROSS;
1309                        break;
1310                case DIAMOND:
1311                        jj_consume_token(DIAMOND);
1312                        s = Style.Shape.DIAMOND;
1313                        break;
1314                case POLYGON:
1315                        jj_consume_token(POLYGON);
1316                        s = Style.Shape.POLYGON;
1317                        break;
1318                case FREEPLANE:
1319                        jj_consume_token(FREEPLANE);
1320                        s = Style.Shape.FREEPLANE;
1321                        break;
1322                case TEXTBOX:
1323                        jj_consume_token(TEXTBOX);
1324                        s = Style.Shape.TEXT_BOX;
1325                        break;
1326                case TEXTROUNDEDBOX:
1327                        jj_consume_token(TEXTROUNDEDBOX);
1328                        s = Style.Shape.TEXT_ROUNDED_BOX;
1329                        break;
1330                case TEXTCIRCLE:
1331                        jj_consume_token(TEXTCIRCLE);
1332                        s = Style.Shape.TEXT_CIRCLE;
1333                        break;
1334                case TEXTDIAMOND:
1335                        jj_consume_token(TEXTDIAMOND);
1336                        s = Style.Shape.TEXT_DIAMOND;
1337                        break;
1338                case TEXTPARAGRAPH:
1339                        jj_consume_token(TEXTPARAGRAPH);
1340                        s = Style.Shape.TEXT_PARAGRAPH;
1341                        break;
1342                case JCOMPONENT:
1343                        jj_consume_token(JCOMPONENT);
1344                        s = Style.Shape.JCOMPONENT;
1345                        break;
1346                case PIECHART:
1347                        jj_consume_token(PIECHART);
1348                        s = Style.Shape.PIE_CHART;
1349                        break;
1350                case FLOW:
1351                        jj_consume_token(FLOW);
1352                        s = Style.Shape.FLOW;
1353                        break;
1354                case ARROW:
1355                        jj_consume_token(ARROW);
1356                        s = Style.Shape.ARROW;
1357                        break;
1358                case LINE:
1359                        jj_consume_token(LINE);
1360                        s = Style.Shape.LINE;
1361                        break;
1362                case ANGLE:
1363                        jj_consume_token(ANGLE);
1364                        s = Style.Shape.ANGLE;
1365                        break;
1366                case CUBICCURVE:
1367                        jj_consume_token(CUBICCURVE);
1368                        s = Style.Shape.CUBIC_CURVE;
1369                        break;
1370                case POLYLINE:
1371                        jj_consume_token(POLYLINE);
1372                        s = Style.Shape.POLYLINE;
1373                        break;
1374                case POLYLINESCALED:
1375                        jj_consume_token(POLYLINESCALED);
1376                        s = Style.Shape.POLYLINE_SCALED;
1377                        break;
1378                case BLOB:
1379                        jj_consume_token(BLOB);
1380                        s = Style.Shape.BLOB;
1381                        break;
1382                case SQUARELINE:
1383                        jj_consume_token(SQUARELINE);
1384                        s = Style.Shape.SQUARELINE;
1385                        break;
1386                case LSQUARELINE:
1387                        jj_consume_token(LSQUARELINE);
1388                        s = Style.Shape.LSQUARELINE;
1389                        break;
1390                case HSQUARELINE:
1391                        jj_consume_token(HSQUARELINE);
1392                        s = Style.Shape.HSQUARELINE;
1393                        break;
1394                case VSQUARELINE:
1395                        jj_consume_token(VSQUARELINE);
1396                        s = Style.Shape.VSQUARELINE;
1397                        break;
1398                default:
1399                        jj_la1[28] = jj_gen;
1400                        jj_consume_token(-1);
1401                        throw new ParseException();
1402                }
1403                {
1404                        if (true)
1405                                return s;
1406                }
1407                throw new Error("Missing return statement in function");
1408        }
1409
1410        final public Style.ArrowShape arrowShape() throws ParseException {
1411                Style.ArrowShape s;
1412                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1413                case NONE:
1414                        jj_consume_token(NONE);
1415                        s = Style.ArrowShape.NONE;
1416                        break;
1417                case ARROW:
1418                        jj_consume_token(ARROW);
1419                        s = Style.ArrowShape.ARROW;
1420                        break;
1421                case CIRCLE:
1422                        jj_consume_token(CIRCLE);
1423                        s = Style.ArrowShape.CIRCLE;
1424                        break;
1425                case DIAMOND:
1426                        jj_consume_token(DIAMOND);
1427                        s = Style.ArrowShape.DIAMOND;
1428                        break;
1429                case IMAGE:
1430                        jj_consume_token(IMAGE);
1431                        s = Style.ArrowShape.IMAGE;
1432                        break;
1433                default:
1434                        jj_la1[29] = jj_gen;
1435                        jj_consume_token(-1);
1436                        throw new ParseException();
1437                }
1438                {
1439                        if (true)
1440                                return s;
1441                }
1442                throw new Error("Missing return statement in function");
1443        }
1444
1445        final public Style.JComponents jcomponent() throws ParseException {
1446                Style.JComponents c;
1447                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1448                case BUTTON:
1449                        jj_consume_token(BUTTON);
1450                        c = Style.JComponents.BUTTON;
1451                        break;
1452                case TEXTFIELD:
1453                        jj_consume_token(TEXTFIELD);
1454                        c = Style.JComponents.TEXT_FIELD;
1455                        break;
1456                case PANEL:
1457                        jj_consume_token(PANEL);
1458                        c = Style.JComponents.PANEL;
1459                        break;
1460                default:
1461                        jj_la1[30] = jj_gen;
1462                        jj_consume_token(-1);
1463                        throw new ParseException();
1464                }
1465                {
1466                        if (true)
1467                                return c;
1468                }
1469                throw new Error("Missing return statement in function");
1470        }
1471
1472        final public Style.SpriteOrientation spriteOrient() throws ParseException {
1473                Style.SpriteOrientation s;
1474                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
1475                case NONE:
1476                        jj_consume_token(NONE);
1477                        s = Style.SpriteOrientation.NONE;
1478                        break;
1479                case TO:
1480                        jj_consume_token(TO);
1481                        s = Style.SpriteOrientation.TO;
1482                        break;
1483                case FROM:
1484                        jj_consume_token(FROM);
1485                        s = Style.SpriteOrientation.FROM;
1486                        break;
1487                case NODE0:
1488                        jj_consume_token(NODE0);
1489                        s = Style.SpriteOrientation.NODE0;
1490                        break;
1491                case NODE1:
1492                        jj_consume_token(NODE1);
1493                        s = Style.SpriteOrientation.NODE1;
1494                        break;
1495                case PROJECTION:
1496                        jj_consume_token(PROJECTION);
1497                        s = Style.SpriteOrientation.PROJECTION;
1498                        break;
1499                default:
1500                        jj_la1[31] = jj_gen;
1501                        jj_consume_token(-1);
1502                        throw new ParseException();
1503                }
1504                {
1505                        if (true)
1506                                return s;
1507                }
1508                throw new Error("Missing return statement in function");
1509        }
1510
1511        /** Generated Token Manager. */
1512        public StyleSheetParserTokenManager token_source;
1513        SimpleCharStream jj_input_stream;
1514        /** Current token. */
1515        public Token token;
1516        /** Next token. */
1517        public Token jj_nt;
1518        private int jj_ntk;
1519        private int jj_gen;
1520        final private int[] jj_la1 = new int[32];
1521        static private int[] jj_la1_0;
1522        static private int[] jj_la1_1;
1523        static private int[] jj_la1_2;
1524        static private int[] jj_la1_3;
1525        static private int[] jj_la1_4;
1526        static {
1527                jj_la1_init_0();
1528                jj_la1_init_1();
1529                jj_la1_init_2();
1530                jj_la1_init_3();
1531                jj_la1_init_4();
1532        }
1533
1534        private static void jj_la1_init_0() {
1535                jj_la1_0 = new int[] { 0xf000000, 0xf000000, 0xf0000000, 0xf0000000,
1536                                0xf000000, 0x600000, 0x400000, 0x4200, 0x4200, 0x400000,
1537                                0x8000, 0xf0000000, 0x20000, 0x800000, 0x400000, 0x5c0000,
1538                                0x20000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1539                                0x0, 0x0, 0x0, 0x0, };
1540        }
1541
1542        private static void jj_la1_init_1() {
1543                jj_la1_1 = new int[] { 0x0, 0x0, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0,
1544                                0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1545                                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10000000,
1546                                0x0, 0x0, 0x0, };
1547        }
1548
1549        private static void jj_la1_init_2() {
1550                jj_la1_2 = new int[] { 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
1551                                0x0, 0x0, 0x3, 0x0, 0x20, 0x0, 0x0, 0x0, 0xfbe0c, 0x801c4,
1552                                0x83e04, 0x304000, 0x7d04000, 0x80004, 0x70100000, 0x8100010,
1553                                0x80000000, 0x80000, 0x7d04000, 0x0, 0x80000, 0x0, 0x80000, };
1554        }
1555
1556        private static void jj_la1_init_3() {
1557                jj_la1_3 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1558                                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1559                                0x0, 0x20000, 0x0, 0x0, 0xff, 0x63, 0x0, 0xff1fff00, 0x80100,
1560                                0xe00000, 0x0, };
1561        }
1562
1563        private static void jj_la1_init_4() {
1564                jj_la1_4 = new int[] { 0x8000, 0x8000, 0x8000, 0x8000, 0x0, 0x4000,
1565                                0x7000, 0x0, 0x0, 0x7000, 0x0, 0x8000, 0x0, 0x0, 0x4000,
1566                                0x4000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1567                                0x0, 0x1f, 0x24, 0x0, 0xf80, };
1568        }
1569
1570        /** Constructor with InputStream. */
1571        public StyleSheetParser(java.io.InputStream stream) {
1572                this(stream, null);
1573        }
1574
1575        /** Constructor with InputStream and supplied encoding */
1576        public StyleSheetParser(java.io.InputStream stream, String encoding) {
1577                try {
1578                        jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1);
1579                } catch (java.io.UnsupportedEncodingException e) {
1580                        throw new RuntimeException(e);
1581                }
1582                token_source = new StyleSheetParserTokenManager(jj_input_stream);
1583                token = new Token();
1584                jj_ntk = -1;
1585                jj_gen = 0;
1586                for (int i = 0; i < 32; i++)
1587                        jj_la1[i] = -1;
1588        }
1589
1590        /** Reinitialise. */
1591        public void ReInit(java.io.InputStream stream) {
1592                ReInit(stream, null);
1593        }
1594
1595        /** Reinitialise. */
1596        public void ReInit(java.io.InputStream stream, String encoding) {
1597                try {
1598                        jj_input_stream.ReInit(stream, encoding, 1, 1);
1599                } catch (java.io.UnsupportedEncodingException e) {
1600                        throw new RuntimeException(e);
1601                }
1602                token_source.ReInit(jj_input_stream);
1603                token = new Token();
1604                jj_ntk = -1;
1605                jj_gen = 0;
1606                for (int i = 0; i < 32; i++)
1607                        jj_la1[i] = -1;
1608        }
1609
1610        /** Constructor. */
1611        public StyleSheetParser(java.io.Reader stream) {
1612                jj_input_stream = new SimpleCharStream(stream, 1, 1);
1613                token_source = new StyleSheetParserTokenManager(jj_input_stream);
1614                token = new Token();
1615                jj_ntk = -1;
1616                jj_gen = 0;
1617                for (int i = 0; i < 32; i++)
1618                        jj_la1[i] = -1;
1619        }
1620
1621        /** Reinitialise. */
1622        public void ReInit(java.io.Reader stream) {
1623                jj_input_stream.ReInit(stream, 1, 1);
1624                token_source.ReInit(jj_input_stream);
1625                token = new Token();
1626                jj_ntk = -1;
1627                jj_gen = 0;
1628                for (int i = 0; i < 32; i++)
1629                        jj_la1[i] = -1;
1630        }
1631
1632        /** Constructor with generated Token Manager. */
1633        public StyleSheetParser(StyleSheetParserTokenManager tm) {
1634                token_source = tm;
1635                token = new Token();
1636                jj_ntk = -1;
1637                jj_gen = 0;
1638                for (int i = 0; i < 32; i++)
1639                        jj_la1[i] = -1;
1640        }
1641
1642        /** Reinitialise. */
1643        public void ReInit(StyleSheetParserTokenManager tm) {
1644                token_source = tm;
1645                token = new Token();
1646                jj_ntk = -1;
1647                jj_gen = 0;
1648                for (int i = 0; i < 32; i++)
1649                        jj_la1[i] = -1;
1650        }
1651
1652        private Token jj_consume_token(int kind) throws ParseException {
1653                Token oldToken;
1654                if ((oldToken = token).next != null)
1655                        token = token.next;
1656                else
1657                        token = token.next = token_source.getNextToken();
1658                jj_ntk = -1;
1659                if (token.kind == kind) {
1660                        jj_gen++;
1661                        return token;
1662                }
1663                token = oldToken;
1664                jj_kind = kind;
1665                throw generateParseException();
1666        }
1667
1668        /** Get the next Token. */
1669        final public Token getNextToken() {
1670                if (token.next != null)
1671                        token = token.next;
1672                else
1673                        token = token.next = token_source.getNextToken();
1674                jj_ntk = -1;
1675                jj_gen++;
1676                return token;
1677        }
1678
1679        /** Get the specific Token. */
1680        final public Token getToken(int index) {
1681                Token t = token;
1682                for (int i = 0; i < index; i++) {
1683                        if (t.next != null)
1684                                t = t.next;
1685                        else
1686                                t = t.next = token_source.getNextToken();
1687                }
1688                return t;
1689        }
1690
1691        private int jj_ntk() {
1692                if ((jj_nt = token.next) == null)
1693                        return (jj_ntk = (token.next = token_source.getNextToken()).kind);
1694                else
1695                        return (jj_ntk = jj_nt.kind);
1696        }
1697
1698        private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
1699        private int[] jj_expentry;
1700        private int jj_kind = -1;
1701
1702        /** Generate ParseException. */
1703        public ParseException generateParseException() {
1704                jj_expentries.clear();
1705                boolean[] la1tokens = new boolean[144];
1706                if (jj_kind >= 0) {
1707                        la1tokens[jj_kind] = true;
1708                        jj_kind = -1;
1709                }
1710                for (int i = 0; i < 32; i++) {
1711                        if (jj_la1[i] == jj_gen) {
1712                                for (int j = 0; j < 32; j++) {
1713                                        if ((jj_la1_0[i] & (1 << j)) != 0) {
1714                                                la1tokens[j] = true;
1715                                        }
1716                                        if ((jj_la1_1[i] & (1 << j)) != 0) {
1717                                                la1tokens[32 + j] = true;
1718                                        }
1719                                        if ((jj_la1_2[i] & (1 << j)) != 0) {
1720                                                la1tokens[64 + j] = true;
1721                                        }
1722                                        if ((jj_la1_3[i] & (1 << j)) != 0) {
1723                                                la1tokens[96 + j] = true;
1724                                        }
1725                                        if ((jj_la1_4[i] & (1 << j)) != 0) {
1726                                                la1tokens[128 + j] = true;
1727                                        }
1728                                }
1729                        }
1730                }
1731                for (int i = 0; i < 144; i++) {
1732                        if (la1tokens[i]) {
1733                                jj_expentry = new int[1];
1734                                jj_expentry[0] = i;
1735                                jj_expentries.add(jj_expentry);
1736                        }
1737                }
1738                int[][] exptokseq = new int[jj_expentries.size()][];
1739                for (int i = 0; i < jj_expentries.size(); i++) {
1740                        exptokseq[i] = jj_expentries.get(i);
1741                }
1742                return new ParseException(token, exptokseq, tokenImage);
1743        }
1744
1745        /** Enable tracing. */
1746        final public void enable_tracing() {
1747        }
1748
1749        /** Disable tracing. */
1750        final public void disable_tracing() {
1751        }
1752
1753}