net.sourceforge.webcompmath.data
Interface ParserExtension
- All Superinterfaces:
- MathObject, java.io.Serializable
- All Known Implementing Classes:
- DataTableInput, DerivParser, ExpressionFunction, FunctionParserExtension, NumDerivParser, NumIntParser, NumMinMaxParser, SummationParser, TableFunction, WCMDataTableInputBean, WCMDerivativeBean, WCMExpressionFunctionBean, WCMExpressionInputBean, WCMTableFunctionBean, WrapperFunction
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. |
doParse
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.)
- Parameters:
parser
- parser to usecontext
- parser context to use