|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.debugger.jpda.expr;
import java.io.StringReader;
/**
* Represents an pre-parsed Java expression to be later evaluated in a specific JVM context.
* The expression can have a 1.4 or 1.5 syntax.
*
* @author Maros Sandor
*/
public class Expression {
public static final String LANGUAGE_JAVA_1_4 = JavaParser.LANGUAGE_JAVA_1_4;
public static final String LANGUAGE_JAVA_1_5 = JavaParser.LANGUAGE_JAVA_1_5;
private String strExpression;
private String language;
private SimpleNode root;
/**
* Creates a new expression by pre-parsing the given String representation of the expression.
*
* @param expr textual representation of an expression
* @param language one of the LANGUAGE_XXX constants
* @return pre-parsed Java expression
* @throws ParseException if the expression has wrong syntax
*/
public static Expression parse (String expr, String language)
throws ParseException {
StringReader reader = new StringReader(expr);
try {
JavaParser parser = new JavaParser(reader);
parser.setTargetJDK(language);
SimpleNode root = parser.Expression();
return new Expression(expr, language, root);
} catch (Error e) {
throw new ParseException(e.getMessage());
} finally {
reader.close();
}
}
private Expression(String expression, String language, SimpleNode root) {
strExpression = expression;
this.language = language;
this.root = root;
}
/**
* Creates an evaluator engine that can be used to evaluate this expression in a given
* runtime JVM context.
*
* @param context a runtime JVM context
* @return the evaluator engine
*/
public Evaluator evaluator(EvaluationContext context) {
return new Evaluator(this, context);
}
SimpleNode getRoot() {
return root;
}
public String getLanguage() {
return language;
}
public String getExpression() {
return strExpression;
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.