package org.eclipse.dltk.xotcl.core.tests.parser; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.eclipse.dltk.ast.ASTNode; import org.eclipse.dltk.ast.ASTVisitor; import org.eclipse.dltk.ast.declarations.MethodDeclaration; import org.eclipse.dltk.ast.declarations.ModuleDeclaration; import org.eclipse.dltk.ast.declarations.TypeDeclaration; import org.eclipse.dltk.compiler.env.ModuleSource; import org.eclipse.dltk.tcl.core.ITclSourceParser; import org.eclipse.dltk.tcl.internal.parser.TclSourceParserFactory; public class XOTclParserTests extends TestCase { public void testParseUtil001() throws Throwable { String content = "set a {gamma[lappend $alfa 20]}"; ModuleDeclaration module = this.parser(content); System.out.println("Cool"); } private ASTNode[] findNodeByName(ModuleDeclaration module, final String name) throws Exception { final List results = new ArrayList(); module.traverse(new ASTVisitor() { public boolean endvisit(TypeDeclaration s) throws Exception { if (s.getName().equals(name)) { return results.add(s); } return super.endvisit(s); } public boolean visit(MethodDeclaration s) throws Exception { if (s.getName().equals(name)) { return results.add(s); } return super.visit(s); } }); return (ASTNode[]) results.toArray(new ASTNode[results.size()]); } private ModuleDeclaration parser(String content) { ITclSourceParser parser = new TclSourceParserFactory() .createSourceParser(); ModuleDeclaration module = parser.parse(new ModuleSource(content), null); assertNotNull(module); return module; } }