Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.yaml.snakeyaml.parser
Class ParserImpl

    java.lang.Object
      org.yaml.snakeyaml.parser.ParserImpl

All Implemented Interfaces:
  Parser

    public final class ParserImpl

extends Object
implements Parser

     # The following YAML grammar is LL(1) and is parsed by a recursive descent
     parser.
     stream            ::= STREAM-START implicit_document? explicit_document* STREAM-END
     implicit_document ::= block_node DOCUMENT-END*
     explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
     block_node_or_indentless_sequence ::=
                           ALIAS
                           | properties (block_content | indentless_block_sequence)?
                           | block_content
                           | indentless_block_sequence
     block_node        ::= ALIAS
                           | properties block_content?
                           | block_content
     flow_node         ::= ALIAS
                           | properties flow_content?
                           | flow_content
     properties        ::= TAG ANCHOR? | ANCHOR TAG?
     block_content     ::= block_collection | flow_collection | SCALAR
     flow_content      ::= flow_collection | SCALAR
     block_collection  ::= block_sequence | block_mapping
     flow_collection   ::= flow_sequence | flow_mapping
     block_sequence    ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
     indentless_sequence   ::= (BLOCK-ENTRY block_node?)+
     block_mapping     ::= BLOCK-MAPPING_START
                           ((KEY block_node_or_indentless_sequence?)?
                           (VALUE block_node_or_indentless_sequence?)?)*
                           BLOCK-END
     flow_sequence     ::= FLOW-SEQUENCE-START
                           (flow_sequence_entry FLOW-ENTRY)*
                           flow_sequence_entry?
                           FLOW-SEQUENCE-END
     flow_sequence_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?
     flow_mapping      ::= FLOW-MAPPING-START
                           (flow_mapping_entry FLOW-ENTRY)*
                           flow_mapping_entry?
                           FLOW-MAPPING-END
     flow_mapping_entry    ::= flow_node | KEY flow_node? (VALUE flow_node?)?
     FIRST sets:
     stream: { STREAM-START }
     explicit_document: { DIRECTIVE DOCUMENT-START }
     implicit_document: FIRST(block_node)
     block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START }
     flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START }
     block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
     flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
     block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START }
     flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
     block_sequence: { BLOCK-SEQUENCE-START }
     block_mapping: { BLOCK-MAPPING-START }
     block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY }
     indentless_sequence: { ENTRY }
     flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
     flow_sequence: { FLOW-SEQUENCE-START }
     flow_mapping: { FLOW-MAPPING-START }
     flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
     flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }

Since writing a recursive-descendant parser is a straightforward task, we do not give many comments here.

Constructor Summary
`ParserImpl(StreamReader reader)`

Method Summary
`boolean` | `checkEvent(Event.ID choices)` Check the type of the next event.
`Event` | `getEvent()` Get the next event and proceed further.
`Event` | `peekEvent()` Get the next event.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ParserImpl

    public ParserImpl(StreamReader reader)

Method Detail

### checkEvent

    public boolean checkEvent(Event.ID choices)

  Check the type of the next event.

  Specified by:
    `checkEvent` in interface `Parser`
  Parameters:
    `choices` - Event ID.
  Returns:
    `true` if the next event can be assigned to a variable of the given type. Returns `false` if no more events are available.

### peekEvent

    public Event peekEvent()

  Get the next event.

  Specified by:
    `peekEvent` in interface `Parser`
  Returns:
    The event that will be returned on the next call to `Parser.getEvent()`

### getEvent

    public Event getEvent()

  Get the next event and proceed further.

  Specified by:
    `getEvent` in interface `Parser`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008-2011. All Rights Reserved.