Absimpa

Abstract Simple Parser
Download

Absimpa Ranking & Summary

Advertisement

  • Rating:
  • License:
  • LGPL
  • Price:
  • FREE
  • Publisher Name:
  • Harald Kirsch
  • Publisher web site:
  • http://wsd.iitb.fhg.de/~geg/clighome/

Absimpa Tags


Absimpa Description

Abstract Simple Parser Absimpa is a Java class library which provides a recursive decent parser. It is an experiment in abstraction and Java generics.Developer commentsI tried to carve out the essentials of what makes out a parser and to leave out, or rather leave free for specification, what is not relevant for the parsing process.As a result, for example, the parser does not deal with String objects. This is left to the lexical analyzer, or lexer, for short. In fact, the whole package does not even assume that the lexer deals with strings. The only assumption made is, that the lexer produces a sequence of objects from some enumeration type C. C is a generic parameter and users of this package may freely define what they need in their application. As a result, the lexer interface basically looks like this:public interface Lexer { c current(); N next();}In the usual lexer design, the lexer analyzes some string and produces tokens, a core ingredient of which is the piece of text the lexer recognized at the current input position. This seems to collide with the fact that Lexer.current() must produce values from an enumeration. There is no place to hold an arbitrary and ever changing piece of text in an enumeration object.The puzzle is solved when we look at what the parser does when it receives a C from the lexer and finds it to be just right in its current stage of analysis. The parser, then calls next() to obtain an object of the type into which the parsed sequence is to be transformed.In particular the lexer may now provide textual information to the in the generated N to create a classic syntax tree node. The parser, however, is completely desinterested in what N is. It will just pass it around and eventually return an object of type N as the result of the parse. Requirements: · Java 2 Standard Edition Runtime Environment


Absimpa Related Software