📄 groovysourceast.java
字号:
package org.codehaus.groovy.antlr;import antlr.collections.AST;import antlr.*;import java.util.List;import java.util.ArrayList;/** * We have an AST subclass so we can track source information. * Very odd that ANTLR doesn't do this by default. * * @author Mike Spille * @author Jeremy Rayner <groovy@ross-rayner.com> */public class GroovySourceAST extends CommonAST implements Comparable { private int line; private int col; private int lineLast; private int colLast; private String snippet; public GroovySourceAST() { } public GroovySourceAST(Token t) { super(t); } public void initialize(AST ast) { super.initialize(ast); line = ast.getLine(); col = ast.getColumn(); } public void initialize(Token t) { super.initialize(t); line = t.getLine(); col = t.getColumn(); } public void setLast(Token last) { lineLast = last.getLine(); colLast = last.getColumn(); } public int getLineLast() { return lineLast; } public void setLineLast(int lineLast) { this.lineLast = lineLast; } public int getColumnLast() { return colLast; } public void setColumnLast(int colLast) { this.colLast = colLast; } public void setLine(int line) { this.line = line; } public int getLine() { return (line); } public void setColumn(int column) { this.col = column; } public int getColumn() { return (col); } public void setSnippet(String snippet) { this.snippet = snippet; } public String getSnippet() { return snippet; } public int compareTo(Object object) { if (object == null) { return 0; } if (!(object instanceof AST)) { return 0; } AST that = (AST) object; // todo - possibly check for line/col with values of 0 or less... if (this.getLine() < that.getLine()) { return -1; } if (this.getLine() > that.getLine()) { return 1; } if (this.getColumn() < that.getColumn()) { return -1; } if (this.getColumn() > that.getColumn()) { return 1; } return 0; } public GroovySourceAST childAt(int position) { List list = new ArrayList(); AST child = this.getFirstChild(); while (child != null) { list.add(child); child = child.getNextSibling(); } try { return (GroovySourceAST)list.get(position); } catch (IndexOutOfBoundsException e) { return null; } } public GroovySourceAST childOfType(int type) { AST child = this.getFirstChild(); while (child != null) { if (child.getType() == type) { return (GroovySourceAST)child; } child = child.getNextSibling(); } return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -