Java Code Examples for org.mozilla.javascript.Token#EXPR_VOID
The following examples show how to use
org.mozilla.javascript.Token#EXPR_VOID .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ExpressionParserUtility.java From birt with Eclipse Public License 1.0 | 5 votes |
/** * compile the expression from a script tree * * @param expression * @param context * @param tree * @param columnExprList * @throws BirtException */ private void CompiledExprFromTree( String expression, Context context, ScriptNode tree, List columnExprList ) throws BirtException { if ( tree.getFirstChild( ) == tree.getLastChild( ) ) { if ( tree.getFirstChild( ).getType( ) == Token.FUNCTION ) { int index = getFunctionIndex( tree.getFirstChild( ).getString( ), tree ); compileFunctionNode( tree.getFunctionNode( index ), tree, columnExprList ); } else { // A single expression if ( tree.getFirstChild( ).getType( ) != Token.EXPR_RESULT && tree.getFirstChild( ).getType( ) != Token.EXPR_VOID && tree.getFirstChild( ).getType( ) != Token.BLOCK && tree.getFirstChild( ).getType( ) != Token.SCRIPT) { // This should never happen? throw new CoreException( pluginId, ResourceConstants.INVALID_EXPRESSION ); } Node exprNode = tree.getFirstChild( ); processChild( exprNode, tree, columnExprList ); } } else { compileComplexExpr( tree, tree, columnExprList ); } }
Example 2
Source File: AbstractExpressionCompiler.java From birt with Eclipse Public License 1.0 | 4 votes |
/** * process the script tree to produce a <code>CompiledExpression</code> * * @param expression * @param tree * @param context * @return @throws * DataException */ private CompiledExpression processScriptTree( String expression, ScriptNode tree, Context context ) throws DataException { CompiledExpression expr; if ( tree.getFirstChild( ) == tree.getLastChild( ) ) { if( tree.getFirstChild( ) == null ) throw new DataException( "Expression parse error: first child is null. The expression is " + expression, expression ); // A single expression if ( tree.getFirstChild( ).getType( ) != Token.EXPR_RESULT && tree.getFirstChild( ).getType( ) != Token.EXPR_VOID && tree.getFirstChild( ).getType( ) != Token.BLOCK ) { // This should never happen? throw new DataException( ResourceConstants.INVALID_JS_EXPR, expression ); } Node child, parent = tree; Node exprNode = parent.getFirstChild( ); child = exprNode.getFirstChild( ); if ( child.getNext( ) != null ) child = exprNode; else { parent = exprNode; } assert ( child != null && parent != null ); expr = processChild( context, false, parent, child, tree ); } else { // complex expressions // Multiple expressions exist; we should produce complex expressions // However, individual subexpressions still needs to be processed // to identify the interesting subexpressions expr = compileComplexExpr( context, tree, false ); } if ( expr instanceof BytecodeExpression ) compileForBytecodeExpr( context, tree, expr ); return expr; }
Example 3
Source File: ExpressionUtility.java From birt with Eclipse Public License 1.0 | 4 votes |
/** * whether the expression is column reference * @param expression * @return */ public static boolean isColumnExpression( String expression, boolean mode ) { boolean isColumn = false; if ( expression == null || expression.trim( ).length( ) == 0 ) return isColumn; if ( getCompiledExpCacheMap( mode ).containsKey( expression ) ) { return ( (Boolean) getCompiledExpCacheMap( mode ).get( expression ) ).booleanValue( ); } Context context = Context.enter( ); ScriptNode tree; try { CompilerEnvirons m_compilerEnv = new CompilerEnvirons( ); m_compilerEnv.initFromContext( context ); Parser p = new Parser( m_compilerEnv, context.getErrorReporter( ) ); AstRoot root = p.parse( expression, null, 0 ); IRFactory ir = new IRFactory( m_compilerEnv ); tree = ir.transformTree( root ); } catch ( Exception e ) { getCompiledExpCacheMap( mode ).put( expression, Boolean.valueOf( false ) ); return false; } finally { Context.exit( ); } if ( tree.getFirstChild( ) == tree.getLastChild( ) ) { // A single expression if ( tree.getFirstChild( ).getType( ) != Token.EXPR_RESULT && tree.getFirstChild( ).getType( ) != Token.EXPR_VOID && tree.getFirstChild( ).getType( ) != Token.BLOCK ) { isColumn = false; } Node exprNode = tree.getFirstChild( ); Node child = exprNode.getFirstChild( ); assert ( child != null ); if ( child.getType( ) == Token.GETELEM || child.getType( ) == Token.GETPROP ) isColumn = getDirectColRefExpr( child, mode ); else isColumn = false; } else { isColumn = false; } getCompiledExpCacheMap( mode ).put( expression, Boolean.valueOf( isColumn ) ); return isColumn; }
Example 4
Source File: ExpressionUtility.java From birt with Eclipse Public License 1.0 | 4 votes |
/** * whether the expression is column reference * @param expression * @return */ public static boolean isColumnExpression( String expression, boolean mode ) { boolean isColumn = false; if ( expression == null || expression.trim( ).length( ) == 0 ) return isColumn; if ( getCompiledExpCacheMap( mode ).containsKey( expression ) ) { return ( (Boolean) getCompiledExpCacheMap( mode ).get( expression ) ).booleanValue( ); } Context context = Context.enter( ); ScriptNode tree; try { CompilerEnvirons m_compilerEnv = new CompilerEnvirons( ); m_compilerEnv.initFromContext( context ); Parser p = new Parser( m_compilerEnv, context.getErrorReporter( ) ); AstRoot root = p.parse( expression, null, 0 ); IRFactory ir = new IRFactory( m_compilerEnv ); tree = ir.transformTree( root ); } catch ( Exception e ) { getCompiledExpCacheMap( mode ).put( expression, Boolean.valueOf( false ) ); return false; } finally { Context.exit( ); } if ( tree.getFirstChild( ) == tree.getLastChild( ) ) { // A single expression if ( tree.getFirstChild( ).getType( ) != Token.EXPR_RESULT && tree.getFirstChild( ).getType( ) != Token.EXPR_VOID && tree.getFirstChild( ).getType( ) != Token.BLOCK ) { isColumn = false; } Node exprNode = tree.getFirstChild( ); Node child = exprNode.getFirstChild( ); assert ( child != null ); if ( child.getType( ) == Token.GETELEM || child.getType( ) == Token.GETPROP ) isColumn = getDirectColRefExpr( child, mode ); else isColumn = false; } else { isColumn = false; } getCompiledExpCacheMap( mode ).put( expression, Boolean.valueOf( isColumn ) ); return isColumn; }
Example 5
Source File: ExpressionUtility.java From birt with Eclipse Public License 1.0 | 4 votes |
/** * whether the expression is column reference * * @param expression * @return */ public static boolean isColumnExpression( String expression ) { boolean isColumn = false; if ( expression == null || expression.trim( ).length( ) == 0 ) return isColumn; if ( compiledExprCache.containsKey( expression ) ) return ( (Boolean) compiledExprCache.get( expression ) ).booleanValue( ); Context context = Context.enter( ); ScriptNode tree; try { CompilerEnvirons m_compilerEnv = new CompilerEnvirons( ); m_compilerEnv.initFromContext( context ); Parser p = new Parser( m_compilerEnv, context.getErrorReporter( ) ); AstRoot root = p.parse( expression, null, 0 ); IRFactory ir = new IRFactory( m_compilerEnv ); tree = ir.transformTree( root ); } catch ( Exception e ) { compiledExprCache.put( expression, Boolean.valueOf( false ) ); return false; } finally { Context.exit( ); } if ( tree.getFirstChild( ) == tree.getLastChild( ) ) { // A single expression if ( tree.getFirstChild( ).getType( ) != Token.EXPR_RESULT && tree.getFirstChild( ).getType( ) != Token.EXPR_VOID && tree.getFirstChild( ).getType( ) != Token.BLOCK ) { isColumn = false; } Node exprNode = tree.getFirstChild( ); Node child = exprNode.getFirstChild( ); assert ( child != null ); if ( child.getType( ) == Token.GETELEM || child.getType( ) == Token.GETPROP ) isColumn = getDirectColRefExpr( child ); else isColumn = false; } else { isColumn = false; } compiledExprCache.put( expression, Boolean.valueOf( isColumn ) ); return isColumn; }