Class RmrsDomconInputCodec

java.lang.Object
de.saar.chorus.domgraph.codec.InputCodec
de.saar.chorus.domgraph.codec.rmrs.RmrsDomconInputCodec
All Implemented Interfaces:
RmrsDomconInputCodecConstants

public class RmrsDomconInputCodec extends InputCodec implements RmrsDomconInputCodecConstants
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

    • RmrsDomconInputCodec

      public RmrsDomconInputCodec()
    • RmrsDomconInputCodec

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

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

      public RmrsDomconInputCodec(Reader stream)
      Constructor.
    • RmrsDomconInputCodec

      public RmrsDomconInputCodec(RmrsDomconInputCodecTokenManager 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
    • 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(RmrsDomconInputCodecTokenManager 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.