|
Groovy example source code file (ScriptSourcePositionInAstTest.groovy)
The Groovy ScriptSourcePositionInAstTest.groovy source codepackage groovy.lang import org.codehaus.groovy.control.CompilationUnit import org.codehaus.groovy.control.Phases /** * Check that scripts have proper source position in the AST * * @author Guillaume Laforge */ class ScriptSourcePositionInAstTest extends GroovyTestCase { private positionsForScript(String text) { CompilationUnit cu = new CompilationUnit() cu.addSource("scriptSourcePosition.groovy", text) cu.compile(Phases.SEMANTIC_ANALYSIS) def node = cu.getAST().getClass("scriptSourcePosition") [[node.getLineNumber(), node.getColumnNumber()], [node.getLastLineNumber(), node.getLastColumnNumber()]] } void testEmptyScript() { assert positionsForScript("") == [[-1, -1], [-1, -1]] } void testSingleStatementScript() { assert positionsForScript("println 'hello'") == [[1, 1], [1, 16]] } void testDoubleStatementScript() { assert positionsForScript("""\ println 'hello' println 'bye' """.stripIndent()) == [[1, 1], [2, 14]] } void testScriptWithClasses() { assert positionsForScript("""\ class Bar {} println 'hello' println 'bye' class Baz{} """.stripIndent()) == [[2, 1], [3, 14]] } } Other Groovy examples (source code examples)Here is a short list of links related to this Groovy ScriptSourcePositionInAstTest.groovy source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.