/*******************************************************************************
 * Copyright (c) 2015 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
/* Generated By:JavaCC: Do not edit this line. HTMLParserConstants.java */
package org.apache.lucene.demo.html;

public interface HTMLParserConstants {

  int EOF = 0;
  int ScriptStart = 1;
  int TagName = 2;
  int DeclName = 3;
  int Comment1 = 4;
  int Comment2 = 5;
  int Word = 6;
  int LET = 7;
  int NUM = 8;
  int HEX = 9;
  int Space = 10;
  int SP = 11;
  int Entity = 12;
  int Punct = 13;
  int ScriptText = 14;
  int ScriptEnd = 15;
  int ArgName = 16;
  int ArgEquals = 17;
  int TagEnd = 18;
  int ArgValue = 19;
  int ArgQuote1 = 20;
  int ArgQuote2 = 21;
  int Quote1Text = 23;
  int CloseQuote1 = 24;
  int Quote2Text = 25;
  int CloseQuote2 = 26;
  int CommentText1 = 27;
  int CommentEnd1 = 28;
  int CommentText2 = 29;
  int CommentEnd2 = 30;

  int DEFAULT = 0;
  int WithinScript = 1;
  int WithinTag = 2;
  int AfterEquals = 3;
  int WithinQuote1 = 4;
  int WithinQuote2 = 5;
  int WithinComment1 = 6;
  int WithinComment2 = 7;

  String[] tokenImage = {
    "<EOF>", //$NON-NLS-1$
    "\"<script\"", //$NON-NLS-1$
    "<TagName>", //$NON-NLS-1$
    "<DeclName>", //$NON-NLS-1$
    "\"<!--\"", //$NON-NLS-1$
    "\"<!\"", //$NON-NLS-1$
    "<Word>", //$NON-NLS-1$
    "<LET>", //$NON-NLS-1$
    "<NUM>", //$NON-NLS-1$
    "<HEX>", //$NON-NLS-1$
    "<Space>", //$NON-NLS-1$
    "<SP>", //$NON-NLS-1$
    "<Entity>", //$NON-NLS-1$
    "<Punct>", //$NON-NLS-1$
    "<ScriptText>", //$NON-NLS-1$
    "<ScriptEnd>", //$NON-NLS-1$
    "<ArgName>", //$NON-NLS-1$
    "\"=\"", //$NON-NLS-1$
    "<TagEnd>", //$NON-NLS-1$
    "<ArgValue>", //$NON-NLS-1$
    "\"\\\'\"", //$NON-NLS-1$
    "\"\\\"\"", //$NON-NLS-1$
    "<token of kind 22>", //$NON-NLS-1$
    "<Quote1Text>", //$NON-NLS-1$
    "<CloseQuote1>", //$NON-NLS-1$
    "<Quote2Text>", //$NON-NLS-1$
    "<CloseQuote2>", //$NON-NLS-1$
    "<CommentText1>", //$NON-NLS-1$
    "\"-->\"", //$NON-NLS-1$
    "<CommentText2>", //$NON-NLS-1$
    "\">\"", //$NON-NLS-1$
  };

}
