java.lang.Object
com.opensymphony.module.sitemesh.html.tokenizer.Parser

public class Parser extends Object
Looks for patterns of tokens in the Lexer and translates these to calls to pass to the TokenHandler.
Author:
Joe Walnes
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    The Class ReusableToken.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final short
    The Constant EQUALS.
    static final short
    The Constant GT.
    static final short
    The Constant LT.
    static final short
    The Constant LT_CLOSE_MAGIC_COMMENT.
    static final short
    The Constant LT_OPEN_MAGIC_COMMENT.
    static final short
    The Constant QUOTE.
    static final short
    The Constant QUOTED.
    static final short
    The Constant SLASH.
    static final short
    The Constant TEXT.
    static final short
    The Constant WHITESPACE.
    static final short
    The Constant WORD.
    static final int
    This character denotes the end of file.
    static final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Parser(char[] input, int length, TokenHandler handler)
    Instantiates a new parser.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected int
     
    protected int
     
    protected int
     
    protected void
    parsedAttribute(String name, String value, boolean quoted)
    Parsed attribute.
    protected void
    parsedTag(int type, String name, int start, int length)
    Parsed tag.
    protected void
    parsedText(int position, int length)
    Parsed text.
    protected int
     
    protected void
    reportError(String message, int line, int column)
     
    protected void
     
    void
    Start.
    final boolean
    Returns whether the scanner has reached the end of the reader it reads from.
    final void
    yybegin(int newState)
    Enters a new lexical state.
    final char
    yycharat(int position)
    Returns the character at the given position from the matched text.
    final void
    Closes the input reader.
    final int
    How many characters were matched.
    int
    Resumes scanning until the next regular expression is matched, the end of input is encountered or an I/O-Error occurs.
    void
    yypushback(int number)
    Pushes the specified amount of characters back into the input stream.
    final void
    yyreset(Reader reader)
    Resets the scanner to read from a new input stream.
    final int
    Returns the current lexical state.
    final String
    Returns the text matched by the current regular expression.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Parser

      public Parser(char[] input, int length, TokenHandler handler)
      Instantiates a new parser.
      Parameters:
      input - the input
      length - the length
      handler - the handler
  • Method Details

    • start

      public void start()
      Start.
    • parsedText

      protected void parsedText(int position, int length)
      Parsed text.
      Parameters:
      position - the position
      length - the length
    • parsedTag

      protected void parsedTag(int type, String name, int start, int length)
      Parsed tag.
      Parameters:
      type - the type
      name - the name
      start - the start
      length - the length
    • parsedAttribute

      protected void parsedAttribute(String name, String value, boolean quoted)
      Parsed attribute.
      Parameters:
      name - the name
      value - the value
      quoted - the quoted
    • reportError

      protected void reportError(String message, int line, int column)
    • position

      protected int position()
    • length

      protected int length()
    • line

      protected int line()
    • column

      protected int column()
    • resetLexerState

      protected void resetLexerState()
    • yyclose

      public final void yyclose() throws IOException
      Closes the input reader.
      Throws:
      IOException - if the reader could not be closed.
    • yyreset

      public final void yyreset(Reader reader)
      Resets the scanner to read from a new input stream.

      Does not close the old reader.

      All internal variables are reset, the old input stream cannot be reused (internal buffer is discarded and lost). Lexical state is set to ZZ_INITIAL.

      Internal scan buffer is resized down to its initial length, if it has grown.

      Parameters:
      reader - The new input stream.
    • yyatEOF

      public final boolean yyatEOF()
      Returns whether the scanner has reached the end of the reader it reads from.
      Returns:
      whether the scanner has reached EOF.
    • yystate

      public final int yystate()
      Returns the current lexical state.
      Returns:
      the current lexical state.
    • yybegin

      public final void yybegin(int newState)
      Enters a new lexical state.
      Parameters:
      newState - the new lexical state
    • yytext

      public final String yytext()
      Returns the text matched by the current regular expression.
      Returns:
      the matched text.
    • yycharat

      public final char yycharat(int position)
      Returns the character at the given position from the matched text.

      It is equivalent to yytext().charAt(pos), but faster.

      Parameters:
      position - the position of the character to fetch. A value from 0 to yylength()-1.
      Returns:
      the character at position.
    • yylength

      public final int yylength()
      How many characters were matched.
      Returns:
      the length of the matched text region.
    • yypushback

      public void yypushback(int number)
      Pushes the specified amount of characters back into the input stream.

      They will be read again by then next call of the scanning method.

      Parameters:
      number - the number of characters to be read again. This number must not be greater than yylength().
    • yylex

      public int yylex() throws IOException
      Resumes scanning until the next regular expression is matched, the end of input is encountered or an I/O-Error occurs.
      Returns:
      the next token.
      Throws:
      IOException - if any I/O-Error occurs.