edu.hws.jcm.data
Interface ParserExtension

All Superinterfaces:
MathObject, java.io.Serializable
All Known Implementing Classes:
DataTableInput, FunctionParserExtension, SummationParser

public interface ParserExtension
extends MathObject

A ParserExtension can be defined to add new capabilities to a standard Parser. Examples include user-defined functions and summations (using a notation of the form "sum(i, 0, n, x^n/i!)"). A ParserExtension is a MathObject, so it has a name and can be registered with a Parser. When the Parser encounters the name in a string, it turns control of the parsing process over to the ParserExtension, which must parse any necessary arguments and generate any ExpressionProgram commands.


Method Summary
 void doParse(Parser parser, ParserContext context)
          Parses the part of an expression string associated with this ParserExtension.
 
Methods inherited from interface edu.hws.jcm.data.MathObject
getName, setName
 

Method Detail

doParse

public void doParse(Parser parser,
                    ParserContext context)
Parses the part of an expression string associated with this ParserExtension. This method must add commands to context.prog that will generate exactly ONE number on the stack when they are executed. Parsing routines from the Parse class, such as parseFactor and parseExpression, can be called to parse sub-parts of the string. The name of the command has already been read from the ParseContext when doParse() is called. (At the time this is called, context.tokenString is the name under which this ParserExtension was registered with the Parser. This makes it possible to register the same ParserExtension under several names, with each name represnting a different meaning.)