/*******************************************************************************
* Copyright (c) 2010, 2013 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.clientbuilder;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.List;
import org.mozilla.javascript.Token;
import com.yahoo.platform.yui.compressor.JavaScriptCompressor;
import com.yahoo.platform.yui.compressor.JavaScriptToken;
import com.yahoo.platform.yui.compressor.TestAdapter;
import com.yahoo.platform.yui.compressor.TestErrorReporter;
public class TestUtil {
public static TokenList parse( String input ) throws IOException {
List<JavaScriptToken> tokens = TestAdapter.parseString( input );
return new TokenList( tokens );
}
public static String compress( String input ) throws IOException {
Reader inputReader = new StringReader( input );
TestErrorReporter errorReporter = new TestErrorReporter();
JavaScriptCompressor compressor = new JavaScriptCompressor( inputReader, errorReporter );
StringWriter outputWriter = new StringWriter();
compressor.compress( outputWriter, -1, true, false, false, false );
return outputWriter.toString();
}
public static void printTokens( TokenList tokens ) {
int size = tokens.size();
for( int i = 0; i < size; i++ ) {
printToken( i, tokens.getToken( i ) );
}
}
private static void printToken( int n, JavaScriptToken token ) {
int type = token.getType();
switch( type ) {
case Token.NAME:
System.out.println( n + ". name: " + token.getValue() );
break;
case Token.REGEXP:
System.out.println( n + ". regexp: " + token.getValue() );
break;
case Token.STRING:
System.out.println( n + ". string: " + token.getValue() );
break;
case Token.NUMBER:
System.out.println( n + ". number: " + token.getValue() );
break;
default:
String litStr = TestAdapter.getLiteralString( type );
System.out.println( n + ". literal: " + litStr );
break;
}
}
}