Class DomconOzInputCodec

java.lang.Object
de.saar.chorus.domgraph.codec.InputCodec
de.saar.chorus.domgraph.codec.domcon.DomconOzInputCodec
All Implemented Interfaces:
DomconOzInputCodecConstants

public class DomconOzInputCodec extends InputCodec implements DomconOzInputCodecConstants
An input codec for weakly normal dominance constraints in Oz syntax. The inputs that this codec accepts are lists of Oz terms; these terms represent dominance and labelling atoms.

An example input looks as follows:

[label(x f(y)) dom(y z) label(z a)]

The dominance constraint represented by the Oz term is read as a weakly normal dominance constraint, i.e. we require that the right-hand sides of dominance atoms are roots, and we assume that there is an implicit inequality atom for each pair of labelled variables.

The constraints accepted by this codec are compatible with the old CHORUS demo. A line that starts with a percent sign is interpreted as a comment.

Author:
Alexander Koller
  • Field Details

  • Constructor Details

    • DomconOzInputCodec

      public DomconOzInputCodec()
    • DomconOzInputCodec

      public DomconOzInputCodec(InputStream stream)
      Constructor with InputStream.
    • DomconOzInputCodec

      public DomconOzInputCodec(InputStream stream, String encoding)
      Constructor with InputStream and supplied encoding
    • DomconOzInputCodec

      public DomconOzInputCodec(Reader stream)
      Constructor.
    • DomconOzInputCodec

      public DomconOzInputCodec(DomconOzInputCodecTokenManager tm)
      Constructor with generated Token Manager.
  • Method Details

    • decode

      public void decode(Reader inputStream, DomGraph graph, NodeLabels labels) throws IOException, ParserException, MalformedDomgraphException
      Description copied from class: InputCodec
      Reads an USR representation from a Reader. This method converts the USR into an equivalent labelled dominance graph and stores this graph in a DomGraph and the labels in a NodeLabels object. You must implement this method in every concrete input codec.

      The graph and labels objects passed to this method need not be empty; it is the responsibility of this method to clear them first.

      Specified by:
      decode in class InputCodec
      Parameters:
      inputStream - the reader from which the USR is read
      graph - the dominance graph into which the USR is converted
      labels - the node labels of the labelled dominance graph
      Throws:
      IOException - if an I/O error occurred while reading from reader
      ParserException - if a syntactic error occurred while parsing the USR
      MalformedDomgraphException - if a semantic error occurred, i.e. the USR cannot be converted into a dominance graph
    • Input

      public final void Input() throws ParseException
      Throws:
      ParseException
    • Atom

      public final void Atom() throws ParseException
      Throws:
      ParseException
    • Varlist

      public final void Varlist() throws ParseException
      Throws:
      ParseException
    • Variable

      public final String Variable() throws ParseException
      Throws:
      ParseException
    • ReInit

      public void ReInit(InputStream stream)
      Reinitialise.
    • ReInit

      public void ReInit(InputStream stream, String encoding)
      Reinitialise.
    • ReInit

      public void ReInit(Reader stream)
      Reinitialise.
    • ReInit

      public void ReInit(DomconOzInputCodecTokenManager tm)
      Reinitialise.
    • getNextToken

      public final Token getNextToken()
      Get the next Token.
    • getToken

      public final Token getToken(int index)
      Get the specific Token.
    • generateParseException

      public ParseException generateParseException()
      Generate ParseException.
    • enable_tracing

      public final void enable_tracing()
      Enable tracing.
    • disable_tracing

      public final void disable_tracing()
      Disable tracing.