|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Interface Summary | |
| IEnv | IEnv: Interface to objects in which names can be looked up. |
| IExpressionNode | Interface to nodes for Java expressions. |
| IExpressionStoreNode | Expression nodes valid on left of assignment. |
| IJevaNode | IJevaNode: extends Node with methods for accessing the tokens and for printing out the token stream for this node. |
| IPackage | IPackage is an interface for internal representations of known packages to store and retrieve the classes defined within them. |
| IStatementNode | Interface to parse nodes for Java statements. |
| IStore | IStore: interface to implementation objects for a storable location for assignment. |
| JevaESParserConstants | |
| JevaESParserTreeConstants | |
| Node | |
| Class Summary | |
| AccessibilityMethods | AccessibilityMethods --- methods for checking whether IllegalAccessException should be thrown. |
| ASCII_UCodeESC_CharStream | An implementation of interface CharStream, where the stream is assumed to contain only ASCII characters (with java-like unicode escape processing). |
| ClassPathMethods | ClassPathMethods.findInClassPath searches classpath to obtain an input stream from either source directories or jar files; verifyPackageNameFromClassPath checks that a directory structure or jar file entry exists corresponding to a package name starting from some root in the class path. |
| ClassPathMethods.ClassPathSearchResult | Class for multiple value return of with found location path, input stream, and modification date |
| ClassPathMethods.StarFilenameFilter | Filter to match filenames based on pattern with *'s in it |
| EnvBase | A base class for Environment nodes that forwards all requests to the next environment node. |
| EnvEnd | A tail environment node that holds the root package. |
| EnvLocalStore | LocalStore implements storage for a local variable in an environment chain. |
| EnvOptionBits | EnvOptionBits -- environment which specifies option bits; can be used to override the options of the environment. |
| EvalMethods | Centralized static methods for evaluating nodes while catching exceptions. |
| ExpressionNode | A base class for Expressions which caches its type (and value if constant). |
| IEnv.ClassResult | class used for multiple value return. |
| JevaES | JevaES (Java Evaluator: Expressions & Statements) is the entry point class of the core of a source code evaluator for Java expressions and statements; see edu.mit.ai.psg.jevaESUI for user interfaces. |
| JevaESParser | JevaESParser: parse Java Expressions and Statements. |
| JevaESParserTokenManager | |
| JevaNode | JevaNode: Extends SimpleNode so each node can echo back its token stream of Java code. |
| JNDImportDeclaration | JNDImportDeclaration: parse node for import declarations. |
| JNDPackageDeclaration | JNDPackageDeclaration: parse node for package declarations. |
| JNEAdditiveExpression | Jeva parse Node for binary + - Expressions [JavaLangSpec 1.0 sec 15.17 Additive Operators]. |
| JNEAndExpression | Jeva parse Node for & Expressions [JavaLangSpec 1.0 sec 15.21 Bitwise and Logical Operators]. |
| JNEArguments | JNEArguments: parse node for arguments for method call or constructor call. |
| JNEArrayAccessExpression | Jeva parse Node for array[index] Expressions [JavaLangSpec1.0 sec15.12 Array Access Expressions]. |
| JNEArrayCreationExpression | Jeva parse Node for array creation Expressions: "new" Type [arraydims] or "new" Type [arraydims] { arrayinitializer } |
| JNEArrayDimensions | Jeva parse Node for dimensions in array creation Expressions. |
| JNEArrayInitializer | JNEArrayInitializer: parse node for array initializer in array creation expressions. |
| JNEAssignmentExpression | Jeva parse Nodes for all assignment Expressions (=, +=, *=, etc.) [JavaLangSpec1.0 sec 15.25]. |
| JNEAssignmentOperator | Jeva parse Node for just assignment operator (=, +=, ...) in assignment Expressions. |
| JNECastExpression | Jeva parse Node for cast Expressions: (type) expr . |
| JNEConditionalAndExpression | Jeva parse Node for && Expressions. |
| JNEConditionalExpression | Jeva parse Node for ? : Expressions. |
| JNEConditionalOrExpression | Jeva parse Node for || Expressions. |
| JNEEqualityExpression | Jeva parse Node for == and != Expressions [JavaLangSpec 1.0 sec 15.20 Equality Operators]. |
| JNEExclusiveOrExpression | Jeva parse Node for ^ Expressions [JavaLangSpec 1.0 sec 15.21 Bitwise and Logical Operators]. |
| JNEInclusiveOrExpression | Jeva parse Node for | Expressions [JavaLangSpec 1.0 sec 15.21 Bitwise and Logical Operators]. |
| JNEInstanceCreationExpression | Jeva parse Node for instance creation expressions: "new" Type(args...). |
| JNEInstanceOfExpression | Jeva parse Node for Expr instanceof Class [JavaLangSpec1.0 sec15.19.2 Type Comparison Operator instanceof] |
| JNELiteralExpression | Jeva parse node for literal expressions (1, 3.14, "Hi", etc.) |
| JNEMethodInvocationExpression | Jeva parse node for Method invocation expressions: target.method(args...) [JavaLangSpec 1.0 sec 15.11 Method Invocation Expressions]. |
| JNEMultiplicativeExpression | Jeva parse Node for * % / Expressions [JavaLangSpec 1.0 sec 15.16 Multiplicative Operators]. |
| JNEParenthesizedExpression | Jeva parse Node for (parenthesized expressions): This node exists to mark the beginning and end of the parenthesized expression so it can be reproduced in text (the "(" and ")" are not part of the expression they contain). |
| JNEPostfixExpression | Jeva parse node for postfix expressions (x++, x--). |
| JNEPreDecrementExpression | Jeva parse Node for --x Expressions. |
| JNEPreIncrementExpression | Jeva parse nodes for ++x expressions. |
| JNERelationalExpression | Jeva parse node for relational expressions (<,>,<=,>=) [JavaLangSpec 1.0 sec 15.19 Relational Operators] |
| JNEShiftExpression | Jeva parse Node for <<, >>, >>> expressions [JavaLangSpec 1.0 sec 15.18 Shift Operators]. |
| JNEUnaryExpression | Jeva parse Node for unary expressions (!x, ~x, -x, +x) [Java Lang Spec 1.0 sec 15.14.3-6] |
| JNFormalParameter | Jeva parse Node for formal parameters of methods and constructors |
| JNName | Jeva parse node for names (including parameters, fields, and class names); A name x.y.z is parsed with nested names as (((x).y).z). |
| JNPrimitiveType | Jeva parse Node for primitive types (int, boolean, etc.) |
| JNResultType | Jeva parse Node for result types: "void" | Type(). |
| JNSBlock | Jeva parse Node for block Statements: {...} |
| JNSBreakStatement | Jeva parse node for break Statements. |
| JNSContinueStatement | Jeva parse node for continue Statements. |
| JNSDoStatement | Jeva parse Node for do Statements. |
| JNSEmptyStatement | Jeva parse node for empty statements ";". |
| JNSExpressionStatement | Jeva parse Node for expression statements "(expr);". |
| JNSExpressionStatementList | Jeva parse Node for lists of expression statements, used in for statements' initialize and update clauses. |
| JNSForStatement | Jeva parse Node for for statements. |
| JNSIfStatement | Jeva parse Node for if Statements. |
| JNSLabeledStatement | Jeva parse Node for labeled statements e.g., "label: while(true){ ... |
| JNSLocalVariableDeclaration | Jeva parse Node for local variable declarations, e.g., "int i = 0;". |
| JNSReturnStatement | Jeva parse Node for return Statements. |
| JNSSwitchLabel | Jeva parse Node for labels within a switch Statement. |
| JNSSwitchStatement | Jeva parse Node for switch Statements [JavaLangSpec1.0sec14.9]. |
| JNSSynchronizedStatement | Jeva parse Node for synchronized(expr) {...} statements |
| JNSThrowStatement | Jeva parse Node for throw Statements. |
| JNSTryStatement | Jeva parse Node for try Statements [JavaLangSpec1.0sec14.18] |
| JNSVariableDeclarator | Jeva parse Node for variable declators, a component in variable declaration statements and field declarations. |
| JNSWhileStatement | Jeva parse Node for while Statements. |
| JNType | Jeva parse Node for type nodes, except void. ( PrimitiveType() | Name() ) [ ArrayDims() ] |
| LeftAssociativeOperatorExpression | Shared implementation for left associative operators. |
| LiteralMethods | Methods for creating primitives from literal strings. |
| Package | Internal representation of packages, for name lookups. |
| PrimitiveOperations | Binary Operations on Primitive types (numbers and booleans) represented by their wrapper types (e.g., int represented by Integer). |
| SimpleNode | Root class for all parse tree nodes. |
| Token | Describes the input token stream. |
| TypeMethods | Predicates and Methods for testing and comparing types. |
| Exception Summary | |
| AbruptCompletionException | Instances of subclasses of AbruptCompletionException are thrown to implement abrupt completion of statements via break, continue, return, or throw. |
| BreakException | BreakExceptions are thrown to implement abrupt completion of statements. |
| ContinueException | ContinueExceptions are thrown to implement abrupt completion of a loop body statement. |
| IllegalConstructException | IllegalConstructException is thrown when Jeva finds a construct used in an illegal context, e.g., using "this" in a static method, or is malformed, e.g., an array initializer with too many elements. |
| IllegalNameException | IllegalNameException is thrown when Jeva finds a name conflict, e.g., a name that has already been used or is ambiguous. |
| IllegalTypeException | IllegalTypeException is thrown when Jeva finds a type conflict. |
| ParseException | This exception is thrown when parse errors are encountered. |
| ReturnException | ReturnExceptions are thrown to implement abrupt completion of methods. |
| ThrowException | ThrowExceptions are thrown to implement thrown exceptions. |
| VerifyingException | Base class for exceptions for illegal nodes found during verification; saves node and environment where problem occurred. |
| Error Summary | |
| EvaluatingError | Error used to capture context of internal errors thrown while evaluating. |
| TokenMgrError | |
| VerifyingError | Error used to capture context of internal errors thrown while verifying types in source code. |
JevaES is a core source code evaluator for Java expressions and statements; see JevaESUI for user interfaces.
JevaES (Java Evaluator: Expressions & Statements) parses and evaluates Java expressions and statements, as specified in the Java Language Specification 1.0 and amended informally in Clarifications and Amendments to the JLS (in particular, final variables and .class expressions). JevaES does not accept class and interface declarations (nor expressions with anonymous classes). In addition, JevaES accepts import declarations (reduces verbose names) and package declarations (to enable access in packages).
Most uses will be through classes in the edu.mit.ai.psg.jevaESUI user interface package, which provides user interfaces which accept typed expressions and statements.
Programs that need to evaluate individual expressions and statements
usually only need to call methods in the
JevaES class, e.g.,
JevaES.parseEvalStringExpression(expressionString), or
JevaES.parseEvalStringStatement(statementString).
To separate parsing from evaluation, call
JevaES.parse...(..), then
EvalMethods.evaluate(...), using
JevaES.defaultEnv().
java.util.Map.Entry can be accessed through the name
java.util.Map$Entry .
JevaES was developed using a parser generated by Sun's free Java parser generator JavaCC/JJTree (now maintained by the spinoff Metamata), using a modified version of the example Java grammar.
|
Copyright (c) 1996-1999 Massachusetts Institute of Technology Feedback: jeva-feedback@ai.mit.edu |
||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||