Package org.graphstream.ui.graphicGraph.stylesheet.parser

Source Code of org.graphstream.ui.graphicGraph.stylesheet.parser.StyleSheetParser

/* Generated By:JavaCC: Do not edit this line. StyleSheetParser.java */
/*
* Copyright 2006 - 2012
*     Stefan Balev     <stefan.balev@graphstream-project.org>
*     Julien Baudry  <julien.baudry@graphstream-project.org>
*     Antoine Dutot  <antoine.dutot@graphstream-project.org>
*     Yoann Pigné    <yoann.pigne@graphstream-project.org>
*     Guilhelm Savin  <guilhelm.savin@graphstream-project.org>
*
* This file is part of GraphStream <http://graphstream-project.org>.
*
* GraphStream is a library whose purpose is to handle static or dynamic
* graph, create them from scratch, file or any source and display them.
*
* This program is free software distributed under the terms of two licenses, the
* CeCILL-C license that fits European law, and the GNU Lesser General Public
* License. You can  use, modify and/ or redistribute the software under the terms
* of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
* URL <http://www.cecill.info> or under the terms of the GNU LGPL as published by
* the Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL-C and LGPL licenses and that you accept their terms.
*/
package org.graphstream.ui.graphicGraph.stylesheet.parser;

import java.awt.Color;

import java.io.InputStream;
import java.io.IOException;
import java.io.Reader;

import org.graphstream.ui.graphicGraph.stylesheet.*;

import org.graphstream.util.parser.ParseException;
import org.graphstream.util.parser.SimpleCharStream;
import org.graphstream.util.parser.Token;
import org.graphstream.util.parser.TokenMgrError;

@SuppressWarnings("unused")
public class StyleSheetParser implements StyleSheetParserConstants {
  /**
   * The style sheet.
   */
  protected StyleSheet stylesheet;

  public StyleSheetParser(StyleSheet stylesheet, InputStream stream) {
    this(stream);
    this.stylesheet = stylesheet;
  }

  public StyleSheetParser(StyleSheet stylesheet, Reader stream) {
    this(stream);
    this.stylesheet = stylesheet;
  }

  public static class Number {
    public float value;
    public Style.Units units = Style.Units.PX;

    public Number(float value, Style.Units units) {
      this.value = value;
      this.units = units;
    }
  }

  /**
   * Closes the parser, closing the opened stream.
   */
  public void close() throws IOException {
    jj_input_stream.close();
  }

  /*
   * The parser.
   */
  final public void start() throws ParseException {
    Rule r;
    label_1: while (true) {
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case GRAPH:
      case EDGE:
      case NODE:
      case SPRITE:
      case COMMENT:
        ;
        break;
      default:
        jj_la1[0] = jj_gen;
        break label_1;
      }
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case GRAPH:
      case EDGE:
      case NODE:
      case SPRITE:
        r = rule();
        stylesheet.addRule(r);
        break;
      case COMMENT:
        jj_consume_token(COMMENT);
        break;
      default:
        jj_la1[1] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
    jj_consume_token(0);
  }

  final public Rule rule() throws ParseException {
    Selector select;
    Style style;
    Rule rule;
    select = select();
    rule = new Rule(select);
    style = new Style();
    rule.setStyle(style);
    jj_consume_token(LBRACE);
    styles(style);
    jj_consume_token(RBRACE);
    {
      if (true)
        return rule;
    }
    throw new Error("Missing return statement in function");
  }

  final public void styles(Style style) throws ParseException {
    label_2: while (true) {
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case FILLMODE:
      case FILLCOLOR:
      case FILLIMAGE:
      case STROKEMODE:
      case STROKECOLOR:
      case STROKEWIDTH:
      case SHADOWMODE:
      case SHADOWCOLOR:
      case SHADOWWIDTH:
      case SHADOWOFFSET:
      case TEXTMODE:
      case TEXTCOLOR:
      case TEXTSTYLE:
      case TEXTFONT:
      case TEXTSIZE:
      case TEXTVISIBILITYMODE:
      case TEXTVISIBILITY:
      case TEXTBACKGROUNDMODE:
      case TEXTBACKGROUNDCOLOR:
      case TEXTOFFSET:
      case TEXTPADDING:
      case ICONMODE:
      case ICON:
      case PADDING:
      case ZINDEX:
      case VISIBILITYMODE:
      case VISIBILITY:
      case SHAPE:
      case SIZE:
      case SIZEMODE:
      case SHAPEPOINTS:
      case TEXTALIGNMENT:
      case JCOMPONENT:
      case ARROWIMGURL:
      case ARROWSIZE:
      case ARROWSHAPE:
      case SPRITEORIENT:
      case CANVASCOLOR:
      case COMMENT:
        ;
        break;
      default:
        jj_la1[2] = jj_gen;
        break label_2;
      }
      style(style);
    }
  }

  final public void stylesStart(Style style) throws ParseException {
    label_3: while (true) {
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case FILLMODE:
      case FILLCOLOR:
      case FILLIMAGE:
      case STROKEMODE:
      case STROKECOLOR:
      case STROKEWIDTH:
      case SHADOWMODE:
      case SHADOWCOLOR:
      case SHADOWWIDTH:
      case SHADOWOFFSET:
      case TEXTMODE:
      case TEXTCOLOR:
      case TEXTSTYLE:
      case TEXTFONT:
      case TEXTSIZE:
      case TEXTVISIBILITYMODE:
      case TEXTVISIBILITY:
      case TEXTBACKGROUNDMODE:
      case TEXTBACKGROUNDCOLOR:
      case TEXTOFFSET:
      case TEXTPADDING:
      case ICONMODE:
      case ICON:
      case PADDING:
      case ZINDEX:
      case VISIBILITYMODE:
      case VISIBILITY:
      case SHAPE:
      case SIZE:
      case SIZEMODE:
      case SHAPEPOINTS:
      case TEXTALIGNMENT:
      case JCOMPONENT:
      case ARROWIMGURL:
      case ARROWSIZE:
      case ARROWSHAPE:
      case SPRITEORIENT:
      case CANVASCOLOR:
      case COMMENT:
        ;
        break;
      default:
        jj_la1[3] = jj_gen;
        break label_3;
      }
      style(style);
    }
    jj_consume_token(0);
  }

  final public Selector select() throws ParseException {
    Token t;
    Selector select;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case GRAPH:
      jj_consume_token(GRAPH);
      select = new Selector(Selector.Type.GRAPH);
      break;
    case NODE:
      jj_consume_token(NODE);
      select = new Selector(Selector.Type.NODE);
      break;
    case EDGE:
      jj_consume_token(EDGE);
      select = new Selector(Selector.Type.EDGE);
      break;
    case SPRITE:
      jj_consume_token(SPRITE);
      select = new Selector(Selector.Type.SPRITE);
      break;
    default:
      jj_la1[4] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case DOT:
    case SHARP:
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case SHARP:
        jj_consume_token(SHARP);
        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
        case IDENTIFIER:
          t = jj_consume_token(IDENTIFIER);
          select.setId(t.image);
          break;
        case STRING:
          t = jj_consume_token(STRING);
          select.setId(t.image.substring(1, t.image.length() - 1));
          break;
        case REAL:
          t = jj_consume_token(REAL);
          select.setId(t.image.toString());
          break;
        default:
          jj_la1[5] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      case DOT:
        jj_consume_token(DOT);
        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
        case IDENTIFIER:
          t = jj_consume_token(IDENTIFIER);
          select.setClass(t.image);
          break;
        case CLICKED:
          t = jj_consume_token(CLICKED);
          select.setClass("clicked");
          break;
        case SELECTED:
          t = jj_consume_token(SELECTED);
          select.setClass("selected");
          break;
        case STRING:
          t = jj_consume_token(STRING);
          select.setClass(t.image.substring(1, t.image.length() - 1));
          break;
        default:
          jj_la1[6] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      default:
        jj_la1[7] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[8] = jj_gen;
      ;
    }
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case COLON:
      jj_consume_token(COLON);
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case CLICKED:
        jj_consume_token(CLICKED);
        select.setPseudoClass("clicked");
        break;
      case SELECTED:
        jj_consume_token(SELECTED);
        select.setPseudoClass("selected");
        break;
      case STRING:
        t = jj_consume_token(STRING);
        select.setPseudoClass(t.image.substring(1, t.image.length() - 1));
        break;
      case IDENTIFIER:
        t = jj_consume_token(IDENTIFIER);
        select.setPseudoClass(t.image);
        break;
      default:
        jj_la1[9] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[10] = jj_gen;
      ;
    }
    {
      if (true)
        return select;
    }
    throw new Error("Missing return statement in function");
  }

  final public void style(Style style) throws ParseException {
    Color color;
    Colors colors;
    String url;
    Value value;
    Values values;
    Style.FillMode fillMode;
    Style.StrokeMode strokeMode;
    Style.ShadowMode shadowMode;
    Style.TextMode textMode;
    Style.TextVisibilityMode textVisMode;
    Style.TextBackgroundMode textBgMode;
    Style.TextStyle textStyle;
    Style.TextAlignment textAlignment;
    Style.IconMode iconMode;
    Style.VisibilityMode visMode;
    Style.SizeMode sizeMode;
    Style.Shape shape;
    Style.SpriteOrientation spriteOrient;
    Style.ArrowShape arrowShape;
    Style.JComponents component;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case COMMENT:
      jj_consume_token(COMMENT);
      break;
    case ZINDEX:
      jj_consume_token(ZINDEX);
      jj_consume_token(COLON);
      value = value();
      jj_consume_token(SEMICOLON);
      style.setValue("z-index", new Integer((int) value.value));
      break;
    case FILLMODE:
      jj_consume_token(FILLMODE);
      jj_consume_token(COLON);
      fillMode = fillMode();
      jj_consume_token(SEMICOLON);
      style.setValue("fill-mode", fillMode);
      break;
    case FILLCOLOR:
      jj_consume_token(FILLCOLOR);
      jj_consume_token(COLON);
      colors = colors();
      jj_consume_token(SEMICOLON);
      style.setValue("fill-color", colors);
      break;
    case FILLIMAGE:
      jj_consume_token(FILLIMAGE);
      jj_consume_token(COLON);
      url = url();
      jj_consume_token(SEMICOLON);
      style.setValue("fill-image", url);
      break;
    case STROKEMODE:
      jj_consume_token(STROKEMODE);
      jj_consume_token(COLON);
      strokeMode = strokeMode();
      jj_consume_token(SEMICOLON);
      style.setValue("stroke-mode", strokeMode);
      break;
    case STROKECOLOR:
      jj_consume_token(STROKECOLOR);
      jj_consume_token(COLON);
      colors = colors();
      jj_consume_token(SEMICOLON);
      style.setValue("stroke-color", colors);
      break;
    case STROKEWIDTH:
      jj_consume_token(STROKEWIDTH);
      jj_consume_token(COLON);
      value = value();
      jj_consume_token(SEMICOLON);
      style.setValue("stroke-width", value);
      break;
    case SHADOWMODE:
      jj_consume_token(SHADOWMODE);
      jj_consume_token(COLON);
      shadowMode = shadowMode();
      jj_consume_token(SEMICOLON);
      style.setValue("shadow-mode", shadowMode);
      break;
    case SHADOWCOLOR:
      jj_consume_token(SHADOWCOLOR);
      jj_consume_token(COLON);
      colors = colors();
      jj_consume_token(SEMICOLON);
      style.setValue("shadow-color", colors);
      break;
    case SHADOWWIDTH:
      jj_consume_token(SHADOWWIDTH);
      jj_consume_token(COLON);
      value = value();
      jj_consume_token(SEMICOLON);
      style.setValue("shadow-width", value);
      break;
    case SHADOWOFFSET:
      jj_consume_token(SHADOWOFFSET);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("shadow-offset", values);
      break;
    case PADDING:
      jj_consume_token(PADDING);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("padding", values);
      break;
    case TEXTMODE:
      jj_consume_token(TEXTMODE);
      jj_consume_token(COLON);
      textMode = textMode();
      jj_consume_token(SEMICOLON);
      style.setValue("text-mode", textMode);
      break;
    case TEXTVISIBILITYMODE:
      jj_consume_token(TEXTVISIBILITYMODE);
      jj_consume_token(COLON);
      textVisMode = textVisMode();
      jj_consume_token(SEMICOLON);
      style.setValue("text-visibility-mode", textVisMode);
      break;
    case TEXTVISIBILITY:
      jj_consume_token(TEXTVISIBILITY);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("text-visibility", values);
      break;
    case TEXTBACKGROUNDMODE:
      jj_consume_token(TEXTBACKGROUNDMODE);
      jj_consume_token(COLON);
      textBgMode = textBgMode();
      jj_consume_token(SEMICOLON);
      style.setValue("text-background-mode", textBgMode);
      break;
    case TEXTCOLOR:
      jj_consume_token(TEXTCOLOR);
      jj_consume_token(COLON);
      colors = colors();
      jj_consume_token(SEMICOLON);
      style.setValue("text-color", colors);
      break;
    case TEXTBACKGROUNDCOLOR:
      jj_consume_token(TEXTBACKGROUNDCOLOR);
      jj_consume_token(COLON);
      colors = colors();
      jj_consume_token(SEMICOLON);
      style.setValue("text-background-color", colors);
      break;
    case TEXTSTYLE:
      jj_consume_token(TEXTSTYLE);
      jj_consume_token(COLON);
      textStyle = textStyle();
      jj_consume_token(SEMICOLON);
      style.setValue("text-style", textStyle);
      break;
    case TEXTFONT:
      jj_consume_token(TEXTFONT);
      jj_consume_token(COLON);
      url = font();
      jj_consume_token(SEMICOLON);
      style.setValue("text-font", url);
      break;
    case TEXTSIZE:
      jj_consume_token(TEXTSIZE);
      jj_consume_token(COLON);
      value = value();
      jj_consume_token(SEMICOLON);
      style.setValue("text-size", value);
      break;
    case TEXTALIGNMENT:
      jj_consume_token(TEXTALIGNMENT);
      jj_consume_token(COLON);
      textAlignment = textAlign();
      jj_consume_token(SEMICOLON);
      style.setValue("text-alignment", textAlignment);
      break;
    case TEXTOFFSET:
      jj_consume_token(TEXTOFFSET);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("text-offset", values);
      break;
    case TEXTPADDING:
      jj_consume_token(TEXTPADDING);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("text-padding", values);
      break;
    case ICONMODE:
      jj_consume_token(ICONMODE);
      jj_consume_token(COLON);
      iconMode = iconMode();
      jj_consume_token(SEMICOLON);
      style.setValue("icon-mode", iconMode);
      break;
    case ICON:
      jj_consume_token(ICON);
      jj_consume_token(COLON);
      url = icon();
      jj_consume_token(SEMICOLON);
      style.setValue("icon", url);
      break;
    case JCOMPONENT:
      jj_consume_token(JCOMPONENT);
      jj_consume_token(COLON);
      component = jcomponent();
      jj_consume_token(SEMICOLON);
      style.setValue("jcomponent", component);
      break;
    case VISIBILITYMODE:
      jj_consume_token(VISIBILITYMODE);
      jj_consume_token(COLON);
      visMode = visMode();
      jj_consume_token(SEMICOLON);
      style.setValue("visibility-mode", visMode);
      break;
    case VISIBILITY:
      jj_consume_token(VISIBILITY);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("visibility", values);
      break;
    case SIZEMODE:
      jj_consume_token(SIZEMODE);
      jj_consume_token(COLON);
      sizeMode = sizeMode();
      jj_consume_token(SEMICOLON);
      style.setValue("size-mode", sizeMode);
      break;
    case SIZE:
      jj_consume_token(SIZE);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("size", values);
      break;
    case SHAPEPOINTS:
      jj_consume_token(SHAPEPOINTS);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("shape-points", values);
      break;
    case SHAPE:
      jj_consume_token(SHAPE);
      jj_consume_token(COLON);
      shape = shape();
      jj_consume_token(SEMICOLON);
      style.setValue("shape", shape);
      break;
    case SPRITEORIENT:
      jj_consume_token(SPRITEORIENT);
      jj_consume_token(COLON);
      spriteOrient = spriteOrient();
      jj_consume_token(SEMICOLON);
      style.setValue("sprite-orientation", spriteOrient);
      break;
    case ARROWSHAPE:
      jj_consume_token(ARROWSHAPE);
      jj_consume_token(COLON);
      arrowShape = arrowShape();
      jj_consume_token(SEMICOLON);
      style.setValue("arrow-shape", arrowShape);
      break;
    case ARROWIMGURL:
      jj_consume_token(ARROWIMGURL);
      jj_consume_token(COLON);
      url = url();
      jj_consume_token(SEMICOLON);
      style.setValue("arrow-image", url);
      break;
    case ARROWSIZE:
      jj_consume_token(ARROWSIZE);
      jj_consume_token(COLON);
      values = values();
      jj_consume_token(SEMICOLON);
      style.setValue("arrow-size", values);
      break;
    case CANVASCOLOR:
      jj_consume_token(CANVASCOLOR);
      jj_consume_token(COLON);
      colors = colors();
      jj_consume_token(SEMICOLON);
      style.setValue("canvas-color", colors);
      break;
    default:
      jj_la1[11] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public Value value() throws ParseException {
    Token t;
    Style.Units units = Style.Units.PX;
    Value value = null;
    t = jj_consume_token(REAL);
    String nb = t.image.toLowerCase();

    if (nb.endsWith("px")) {
      units = Style.Units.PX;
      nb = nb.substring(0, nb.length() - 2);
    } else if (nb.endsWith("gu")) {
      units = Style.Units.GU;
      nb = nb.substring(0, nb.length() - 2);
    } else if (nb.endsWith("%")) {
      units = Style.Units.PERCENTS;
      nb = nb.substring(0, nb.length() - 1);
    }

    try {
      value = new Value(units, Float.parseFloat(nb));
    } catch (NumberFormatException e) {
      generateParseException();
    }
    {
      if (true)
        return value;
    }
    throw new Error("Missing return statement in function");
  }

  final public Values values() throws ParseException {
    Values values;
    Value value;
    value = value();
    values = new Values(value.units, value.value);
    label_4: while (true) {
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case COMA:
        ;
        break;
      default:
        jj_la1[12] = jj_gen;
        break label_4;
      }
      jj_consume_token(COMA);
      value = value();
      values.addValues(value.value);
    }
    {
      if (true)
        return values;
    }
    throw new Error("Missing return statement in function");
  }

  final public String url() throws ParseException {
    Token t;
    jj_consume_token(URL);
    jj_consume_token(LPAREN);
    t = jj_consume_token(STRING);
    jj_consume_token(RPAREN);
    {
      if (true)
        return t.image.substring(1, t.image.length() - 1);
    }
    throw new Error("Missing return statement in function");
  }

  final public String icon() throws ParseException {
    String s;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case DYNICON:
      jj_consume_token(DYNICON);
      {
        if (true)
          return "dynamic";
      }
      break;
    case URL:
      s = url();
      {
        if (true)
          return s;
      }
      break;
    default:
      jj_la1[13] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public String font() throws ParseException {
    Token t;
    String s;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case IDENTIFIER:
      t = jj_consume_token(IDENTIFIER);
      s = t.image;
      break;
    case STRING:
      t = jj_consume_token(STRING);
      s = t.image.substring(1, t.image.length() - 1);
      break;
    default:
      jj_la1[14] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return s;
    }
    throw new Error("Missing return statement in function");
  }

  final public Color color() throws ParseException {
    Token t;
    String s;
    Token r, g, b, a;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case RGB:
      jj_consume_token(RGB);
      jj_consume_token(LPAREN);
      r = jj_consume_token(REAL);
      jj_consume_token(COMA);
      g = jj_consume_token(REAL);
      jj_consume_token(COMA);
      b = jj_consume_token(REAL);
      jj_consume_token(RPAREN);
      s = String.format("rgb(%s,%s,%s)", r.image, g.image, b.image);
      break;
    case RGBA:
      jj_consume_token(RGBA);
      jj_consume_token(LPAREN);
      r = jj_consume_token(REAL);
      jj_consume_token(COMA);
      g = jj_consume_token(REAL);
      jj_consume_token(COMA);
      b = jj_consume_token(REAL);
      jj_consume_token(COMA);
      a = jj_consume_token(REAL);
      jj_consume_token(RPAREN);
      s = String.format("rgba(%s,%s,%s,%s)", r.image, g.image, b.image,
          a.image);
      break;
    case HTMLCOLOR:
      t = jj_consume_token(HTMLCOLOR);
      s = t.image;
      break;
    case IDENTIFIER:
      t = jj_consume_token(IDENTIFIER);
      s = t.image;
      break;
    case STRING:
      t = jj_consume_token(STRING);
      s = t.image.substring(1, t.image.length() - 1);
      break;
    default:
      jj_la1[15] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    Color color = Style.convertColor(s);
    if (color == null)
      color = Color.BLACK;
    {
      if (true)
        return color;
    }
    throw new Error("Missing return statement in function");
  }

  final public Colors colors() throws ParseException {
    Colors colors = new Colors();
    Color color;
    color = color();
    colors.add(color);
    label_5: while (true) {
      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
      case COMA:
        ;
        break;
      default:
        jj_la1[16] = jj_gen;
        break label_5;
      }
      jj_consume_token(COMA);
      color = color();
      colors.add(color);
    }
    {
      if (true)
        return colors;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.FillMode fillMode() throws ParseException {
    Style.FillMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      m = Style.FillMode.NONE;
      break;
    case PLAIN:
      jj_consume_token(PLAIN);
      m = Style.FillMode.PLAIN;
      break;
    case DYNPLAIN:
      jj_consume_token(DYNPLAIN);
      m = Style.FillMode.DYN_PLAIN;
      break;
    case GRADIENTRADIAL:
      jj_consume_token(GRADIENTRADIAL);
      m = Style.FillMode.GRADIENT_RADIAL;
      break;
    case GRADIENTVERTICAL:
      jj_consume_token(GRADIENTVERTICAL);
      m = Style.FillMode.GRADIENT_VERTICAL;
      break;
    case GRADIENTHORIZONTAL:
      jj_consume_token(GRADIENTHORIZONTAL);
      m = Style.FillMode.GRADIENT_HORIZONTAL;
      break;
    case GRADIENTDIAGONAL1:
      jj_consume_token(GRADIENTDIAGONAL1);
      m = Style.FillMode.GRADIENT_DIAGONAL1;
      break;
    case GRADIENTDIAGONAL2:
      jj_consume_token(GRADIENTDIAGONAL2);
      m = Style.FillMode.GRADIENT_DIAGONAL2;
      break;
    case IMAGETILED:
      jj_consume_token(IMAGETILED);
      m = Style.FillMode.IMAGE_TILED;
      break;
    case IMAGESCALED:
      jj_consume_token(IMAGESCALED);
      m = Style.FillMode.IMAGE_SCALED;
      break;
    case IMAGESCALEDRATIOMAX:
      jj_consume_token(IMAGESCALEDRATIOMAX);
      m = Style.FillMode.IMAGE_SCALED_RATIO_MAX;
      break;
    case IMAGESCALEDRATIOMIN:
      jj_consume_token(IMAGESCALEDRATIOMIN);
      m = Style.FillMode.IMAGE_SCALED_RATIO_MIN;
      break;
    default:
      jj_la1[17] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.StrokeMode strokeMode() throws ParseException {
    Style.StrokeMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      m = Style.StrokeMode.NONE;
      break;
    case PLAIN:
      jj_consume_token(PLAIN);
      m = Style.StrokeMode.PLAIN;
      break;
    case DASHES:
      jj_consume_token(DASHES);
      m = Style.StrokeMode.DASHES;
      break;
    case DOTS:
      jj_consume_token(DOTS);
      m = Style.StrokeMode.DOTS;
      break;
    case DOUBLE:
      jj_consume_token(DOUBLE);
      m = Style.StrokeMode.DOUBLE;
      break;
    default:
      jj_la1[18] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.ShadowMode shadowMode() throws ParseException {
    Style.ShadowMode s;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      s = Style.ShadowMode.NONE;
      break;
    case PLAIN:
      jj_consume_token(PLAIN);
      s = Style.ShadowMode.PLAIN;
      break;
    case GRADIENTRADIAL:
      jj_consume_token(GRADIENTRADIAL);
      s = Style.ShadowMode.GRADIENT_RADIAL;
      break;
    case GRADIENTHORIZONTAL:
      jj_consume_token(GRADIENTHORIZONTAL);
      s = Style.ShadowMode.GRADIENT_HORIZONTAL;
      break;
    case GRADIENTVERTICAL:
      jj_consume_token(GRADIENTVERTICAL);
      s = Style.ShadowMode.GRADIENT_VERTICAL;
      break;
    case GRADIENTDIAGONAL1:
      jj_consume_token(GRADIENTDIAGONAL1);
      s = Style.ShadowMode.GRADIENT_DIAGONAL1;
      break;
    case GRADIENTDIAGONAL2:
      jj_consume_token(GRADIENTDIAGONAL2);
      s = Style.ShadowMode.GRADIENT_DIAGONAL2;
      break;
    default:
      jj_la1[19] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return s;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.TextMode textMode() throws ParseException {
    Style.TextMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NORMAL:
      jj_consume_token(NORMAL);
      m = Style.TextMode.NORMAL;
      break;
    case HIDDEN:
      jj_consume_token(HIDDEN);
      m = Style.TextMode.HIDDEN;
      break;
    case TRUNCATED:
      jj_consume_token(TRUNCATED);
      m = Style.TextMode.TRUNCATED;
      break;
    default:
      jj_la1[20] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.TextVisibilityMode textVisMode() throws ParseException {
    Style.TextVisibilityMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NORMAL:
      jj_consume_token(NORMAL);
      m = Style.TextVisibilityMode.NORMAL;
      break;
    case HIDDEN:
      jj_consume_token(HIDDEN);
      m = Style.TextVisibilityMode.HIDDEN;
      break;
    case ATZOOM:
      jj_consume_token(ATZOOM);
      m = Style.TextVisibilityMode.AT_ZOOM;
      break;
    case UNDERZOOM:
      jj_consume_token(UNDERZOOM);
      m = Style.TextVisibilityMode.UNDER_ZOOM;
      break;
    case OVERZOOM:
      jj_consume_token(OVERZOOM);
      m = Style.TextVisibilityMode.OVER_ZOOM;
      break;
    case ZOOMRANGE:
      jj_consume_token(ZOOMRANGE);
      m = Style.TextVisibilityMode.ZOOM_RANGE;
      break;
    case ZOOMS:
      jj_consume_token(ZOOMS);
      m = Style.TextVisibilityMode.ZOOMS;
      break;
    default:
      jj_la1[21] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.TextBackgroundMode textBgMode() throws ParseException {
    Style.TextBackgroundMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      m = Style.TextBackgroundMode.NONE;
      break;
    case PLAIN:
      jj_consume_token(PLAIN);
      m = Style.TextBackgroundMode.PLAIN;
      break;
    case ROUNDEDBOX:
      jj_consume_token(ROUNDEDBOX);
      m = Style.TextBackgroundMode.ROUNDEDBOX;
      break;
    default:
      jj_la1[22] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.TextStyle textStyle() throws ParseException {
    Style.TextStyle t;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NORMAL:
      jj_consume_token(NORMAL);
      t = Style.TextStyle.NORMAL;
      break;
    case BOLD:
      jj_consume_token(BOLD);
      t = Style.TextStyle.BOLD;
      break;
    case ITALIC:
      jj_consume_token(ITALIC);
      t = Style.TextStyle.ITALIC;
      break;
    case BOLD_ITALIC:
      jj_consume_token(BOLD_ITALIC);
      t = Style.TextStyle.BOLD_ITALIC;
      break;
    default:
      jj_la1[23] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return t;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.SizeMode sizeMode() throws ParseException {
    Style.SizeMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NORMAL:
      jj_consume_token(NORMAL);
      m = Style.SizeMode.NORMAL;
      break;
    case FIT:
      jj_consume_token(FIT);
      m = Style.SizeMode.FIT;
      break;
    case DYNSIZE:
      jj_consume_token(DYNSIZE);
      m = Style.SizeMode.DYN_SIZE;
      break;
    default:
      jj_la1[24] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.TextAlignment textAlign() throws ParseException {
    Style.TextAlignment t;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case CENTER:
      jj_consume_token(CENTER);
      t = Style.TextAlignment.CENTER;
      break;
    case LEFT:
      jj_consume_token(LEFT);
      t = Style.TextAlignment.LEFT;
      break;
    case RIGHT:
      jj_consume_token(RIGHT);
      t = Style.TextAlignment.RIGHT;
      break;
    case ATLEFT:
      jj_consume_token(ATLEFT);
      t = Style.TextAlignment.AT_LEFT;
      break;
    case ATRIGHT:
      jj_consume_token(ATRIGHT);
      t = Style.TextAlignment.AT_RIGHT;
      break;
    case UNDER:
      jj_consume_token(UNDER);
      t = Style.TextAlignment.UNDER;
      break;
    case ABOVE:
      jj_consume_token(ABOVE);
      t = Style.TextAlignment.ABOVE;
      break;
    case JUSTIFY:
      jj_consume_token(JUSTIFY);
      t = Style.TextAlignment.JUSTIFY;
      break;
    case ALONG:
      jj_consume_token(ALONG);
      t = Style.TextAlignment.ALONG;
      break;
    default:
      jj_la1[25] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return t;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.IconMode iconMode() throws ParseException {
    Style.IconMode i;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      i = Style.IconMode.NONE;
      break;
    case ATLEFT:
      jj_consume_token(ATLEFT);
      i = Style.IconMode.AT_LEFT;
      break;
    case ATRIGHT:
      jj_consume_token(ATRIGHT);
      i = Style.IconMode.AT_RIGHT;
      break;
    case ABOVE:
      jj_consume_token(ABOVE);
      i = Style.IconMode.ABOVE;
      break;
    case UNDER:
      jj_consume_token(UNDER);
      i = Style.IconMode.UNDER;
      break;
    default:
      jj_la1[26] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return i;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.VisibilityMode visMode() throws ParseException {
    Style.VisibilityMode m;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NORMAL:
      jj_consume_token(NORMAL);
      m = Style.VisibilityMode.NORMAL;
      break;
    case HIDDEN:
      jj_consume_token(HIDDEN);
      m = Style.VisibilityMode.HIDDEN;
      break;
    case ATZOOM:
      jj_consume_token(ATZOOM);
      m = Style.VisibilityMode.AT_ZOOM;
      break;
    case UNDERZOOM:
      jj_consume_token(UNDERZOOM);
      m = Style.VisibilityMode.UNDER_ZOOM;
      break;
    case OVERZOOM:
      jj_consume_token(OVERZOOM);
      m = Style.VisibilityMode.OVER_ZOOM;
      break;
    case ZOOMRANGE:
      jj_consume_token(ZOOMRANGE);
      m = Style.VisibilityMode.ZOOM_RANGE;
      break;
    case ZOOMS:
      jj_consume_token(ZOOMS);
      m = Style.VisibilityMode.ZOOMS;
      break;
    default:
      jj_la1[27] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return m;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.Shape shape() throws ParseException {
    Style.Shape s;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case CIRCLE:
      jj_consume_token(CIRCLE);
      s = Style.Shape.CIRCLE;
      break;
    case BOX:
      jj_consume_token(BOX);
      s = Style.Shape.BOX;
      break;
    case ROUNDEDBOX:
      jj_consume_token(ROUNDEDBOX);
      s = Style.Shape.ROUNDED_BOX;
      break;
    case TRIANGLE:
      jj_consume_token(TRIANGLE);
      s = Style.Shape.TRIANGLE;
      break;
    case CROSS:
      jj_consume_token(CROSS);
      s = Style.Shape.CROSS;
      break;
    case DIAMOND:
      jj_consume_token(DIAMOND);
      s = Style.Shape.DIAMOND;
      break;
    case POLYGON:
      jj_consume_token(POLYGON);
      s = Style.Shape.POLYGON;
      break;
    case FREEPLANE:
      jj_consume_token(FREEPLANE);
      s = Style.Shape.FREEPLANE;
      break;
    case TEXTBOX:
      jj_consume_token(TEXTBOX);
      s = Style.Shape.TEXT_BOX;
      break;
    case TEXTROUNDEDBOX:
      jj_consume_token(TEXTROUNDEDBOX);
      s = Style.Shape.TEXT_ROUNDED_BOX;
      break;
    case TEXTCIRCLE:
      jj_consume_token(TEXTCIRCLE);
      s = Style.Shape.TEXT_CIRCLE;
      break;
    case TEXTDIAMOND:
      jj_consume_token(TEXTDIAMOND);
      s = Style.Shape.TEXT_DIAMOND;
      break;
    case TEXTPARAGRAPH:
      jj_consume_token(TEXTPARAGRAPH);
      s = Style.Shape.TEXT_PARAGRAPH;
      break;
    case JCOMPONENT:
      jj_consume_token(JCOMPONENT);
      s = Style.Shape.JCOMPONENT;
      break;
    case PIECHART:
      jj_consume_token(PIECHART);
      s = Style.Shape.PIE_CHART;
      break;
    case FLOW:
      jj_consume_token(FLOW);
      s = Style.Shape.FLOW;
      break;
    case ARROW:
      jj_consume_token(ARROW);
      s = Style.Shape.ARROW;
      break;
    case LINE:
      jj_consume_token(LINE);
      s = Style.Shape.LINE;
      break;
    case ANGLE:
      jj_consume_token(ANGLE);
      s = Style.Shape.ANGLE;
      break;
    case CUBICCURVE:
      jj_consume_token(CUBICCURVE);
      s = Style.Shape.CUBIC_CURVE;
      break;
    case POLYLINE:
      jj_consume_token(POLYLINE);
      s = Style.Shape.POLYLINE;
      break;
    case POLYLINESCALED:
      jj_consume_token(POLYLINESCALED);
      s = Style.Shape.POLYLINE_SCALED;
      break;
    case BLOB:
      jj_consume_token(BLOB);
      s = Style.Shape.BLOB;
      break;
    case SQUARELINE:
      jj_consume_token(SQUARELINE);
      s = Style.Shape.SQUARELINE;
      break;
    case LSQUARELINE:
      jj_consume_token(LSQUARELINE);
      s = Style.Shape.LSQUARELINE;
      break;
    case HSQUARELINE:
      jj_consume_token(HSQUARELINE);
      s = Style.Shape.HSQUARELINE;
      break;
    case VSQUARELINE:
      jj_consume_token(VSQUARELINE);
      s = Style.Shape.VSQUARELINE;
      break;
    default:
      jj_la1[28] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return s;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.ArrowShape arrowShape() throws ParseException {
    Style.ArrowShape s;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      s = Style.ArrowShape.NONE;
      break;
    case ARROW:
      jj_consume_token(ARROW);
      s = Style.ArrowShape.ARROW;
      break;
    case CIRCLE:
      jj_consume_token(CIRCLE);
      s = Style.ArrowShape.CIRCLE;
      break;
    case DIAMOND:
      jj_consume_token(DIAMOND);
      s = Style.ArrowShape.DIAMOND;
      break;
    case IMAGE:
      jj_consume_token(IMAGE);
      s = Style.ArrowShape.IMAGE;
      break;
    default:
      jj_la1[29] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return s;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.JComponents jcomponent() throws ParseException {
    Style.JComponents c;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case BUTTON:
      jj_consume_token(BUTTON);
      c = Style.JComponents.BUTTON;
      break;
    case TEXTFIELD:
      jj_consume_token(TEXTFIELD);
      c = Style.JComponents.TEXT_FIELD;
      break;
    case PANEL:
      jj_consume_token(PANEL);
      c = Style.JComponents.PANEL;
      break;
    default:
      jj_la1[30] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return c;
    }
    throw new Error("Missing return statement in function");
  }

  final public Style.SpriteOrientation spriteOrient() throws ParseException {
    Style.SpriteOrientation s;
    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    case NONE:
      jj_consume_token(NONE);
      s = Style.SpriteOrientation.NONE;
      break;
    case TO:
      jj_consume_token(TO);
      s = Style.SpriteOrientation.TO;
      break;
    case FROM:
      jj_consume_token(FROM);
      s = Style.SpriteOrientation.FROM;
      break;
    case NODE0:
      jj_consume_token(NODE0);
      s = Style.SpriteOrientation.NODE0;
      break;
    case NODE1:
      jj_consume_token(NODE1);
      s = Style.SpriteOrientation.NODE1;
      break;
    case PROJECTION:
      jj_consume_token(PROJECTION);
      s = Style.SpriteOrientation.PROJECTION;
      break;
    default:
      jj_la1[31] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    {
      if (true)
        return s;
    }
    throw new Error("Missing return statement in function");
  }

  /** Generated Token Manager. */
  public StyleSheetParserTokenManager token_source;
  SimpleCharStream jj_input_stream;
  /** Current token. */
  public Token token;
  /** Next token. */
  public Token jj_nt;
  private int jj_ntk;
  private int jj_gen;
  final private int[] jj_la1 = new int[32];
  static private int[] jj_la1_0;
  static private int[] jj_la1_1;
  static private int[] jj_la1_2;
  static private int[] jj_la1_3;
  static private int[] jj_la1_4;
  static {
    jj_la1_init_0();
    jj_la1_init_1();
    jj_la1_init_2();
    jj_la1_init_3();
    jj_la1_init_4();
  }

  private static void jj_la1_init_0() {
    jj_la1_0 = new int[] { 0xf000000, 0xf000000, 0xf0000000, 0xf0000000,
        0xf000000, 0x600000, 0x400000, 0x4200, 0x4200, 0x400000,
        0x8000, 0xf0000000, 0x20000, 0x800000, 0x400000, 0x5c0000,
        0x20000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
        0x0, 0x0, 0x0, 0x0, };
  }

  private static void jj_la1_init_1() {
    jj_la1_1 = new int[] { 0x0, 0x0, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0,
        0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10000000,
        0x0, 0x0, 0x0, };
  }

  private static void jj_la1_init_2() {
    jj_la1_2 = new int[] { 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
        0x0, 0x0, 0x3, 0x0, 0x20, 0x0, 0x0, 0x0, 0xfbe0c, 0x801c4,
        0x83e04, 0x304000, 0x7d04000, 0x80004, 0x70100000, 0x8100010,
        0x80000000, 0x80000, 0x7d04000, 0x0, 0x80000, 0x0, 0x80000, };
  }

  private static void jj_la1_init_3() {
    jj_la1_3 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
        0x0, 0x20000, 0x0, 0x0, 0xff, 0x63, 0x0, 0xff1fff00, 0x80100,
        0xe00000, 0x0, };
  }

  private static void jj_la1_init_4() {
    jj_la1_4 = new int[] { 0x8000, 0x8000, 0x8000, 0x8000, 0x0, 0x4000,
        0x7000, 0x0, 0x0, 0x7000, 0x0, 0x8000, 0x0, 0x0, 0x4000,
        0x4000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
        0x0, 0x1f, 0x24, 0x0, 0xf80, };
  }

  /** Constructor with InputStream. */
  public StyleSheetParser(java.io.InputStream stream) {
    this(stream, null);
  }

  /** Constructor with InputStream and supplied encoding */
  public StyleSheetParser(java.io.InputStream stream, String encoding) {
    try {
      jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1);
    } catch (java.io.UnsupportedEncodingException e) {
      throw new RuntimeException(e);
    }
    token_source = new StyleSheetParserTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 32; i++)
      jj_la1[i] = -1;
  }

  /** Reinitialise. */
  public void ReInit(java.io.InputStream stream) {
    ReInit(stream, null);
  }

  /** Reinitialise. */
  public void ReInit(java.io.InputStream stream, String encoding) {
    try {
      jj_input_stream.ReInit(stream, encoding, 1, 1);
    } catch (java.io.UnsupportedEncodingException e) {
      throw new RuntimeException(e);
    }
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 32; i++)
      jj_la1[i] = -1;
  }

  /** Constructor. */
  public StyleSheetParser(java.io.Reader stream) {
    jj_input_stream = new SimpleCharStream(stream, 1, 1);
    token_source = new StyleSheetParserTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 32; i++)
      jj_la1[i] = -1;
  }

  /** Reinitialise. */
  public void ReInit(java.io.Reader stream) {
    jj_input_stream.ReInit(stream, 1, 1);
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 32; i++)
      jj_la1[i] = -1;
  }

  /** Constructor with generated Token Manager. */
  public StyleSheetParser(StyleSheetParserTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 32; i++)
      jj_la1[i] = -1;
  }

  /** Reinitialise. */
  public void ReInit(StyleSheetParserTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 32; i++)
      jj_la1[i] = -1;
  }

  private Token jj_consume_token(int kind) throws ParseException {
    Token oldToken;
    if ((oldToken = token).next != null)
      token = token.next;
    else
      token = token.next = token_source.getNextToken();
    jj_ntk = -1;
    if (token.kind == kind) {
      jj_gen++;
      return token;
    }
    token = oldToken;
    jj_kind = kind;
    throw generateParseException();
  }

  /** Get the next Token. */
  final public Token getNextToken() {
    if (token.next != null)
      token = token.next;
    else
      token = token.next = token_source.getNextToken();
    jj_ntk = -1;
    jj_gen++;
    return token;
  }

  /** Get the specific Token. */
  final public Token getToken(int index) {
    Token t = token;
    for (int i = 0; i < index; i++) {
      if (t.next != null)
        t = t.next;
      else
        t = t.next = token_source.getNextToken();
    }
    return t;
  }

  private int jj_ntk() {
    if ((jj_nt = token.next) == null)
      return (jj_ntk = (token.next = token_source.getNextToken()).kind);
    else
      return (jj_ntk = jj_nt.kind);
  }

  private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
  private int[] jj_expentry;
  private int jj_kind = -1;

  /** Generate ParseException. */
  public ParseException generateParseException() {
    jj_expentries.clear();
    boolean[] la1tokens = new boolean[144];
    if (jj_kind >= 0) {
      la1tokens[jj_kind] = true;
      jj_kind = -1;
    }
    for (int i = 0; i < 32; i++) {
      if (jj_la1[i] == jj_gen) {
        for (int j = 0; j < 32; j++) {
          if ((jj_la1_0[i] & (1 << j)) != 0) {
            la1tokens[j] = true;
          }
          if ((jj_la1_1[i] & (1 << j)) != 0) {
            la1tokens[32 + j] = true;
          }
          if ((jj_la1_2[i] & (1 << j)) != 0) {
            la1tokens[64 + j] = true;
          }
          if ((jj_la1_3[i] & (1 << j)) != 0) {
            la1tokens[96 + j] = true;
          }
          if ((jj_la1_4[i] & (1 << j)) != 0) {
            la1tokens[128 + j] = true;
          }
        }
      }
    }
    for (int i = 0; i < 144; i++) {
      if (la1tokens[i]) {
        jj_expentry = new int[1];
        jj_expentry[0] = i;
        jj_expentries.add(jj_expentry);
      }
    }
    int[][] exptokseq = new int[jj_expentries.size()][];
    for (int i = 0; i < jj_expentries.size(); i++) {
      exptokseq[i] = jj_expentries.get(i);
    }
    return new ParseException(token, exptokseq, tokenImage);
  }

  /** Enable tracing. */
  final public void enable_tracing() {
  }

  /** Disable tracing. */
  final public void disable_tracing() {
  }

}
TOP

Related Classes of org.graphstream.ui.graphicGraph.stylesheet.parser.StyleSheetParser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.