对于我现在要做的事情,我需要从loc
类型中获取行号。
|file:///randomfile.java|(0,11817,<1,0>,<185,1>)
我可以通过使用top(...)来获得第一部分,但是如何获得第二部分以及更具体的部分:行号,我相信在这种情况下它将是#1行。
PS有人可以指导我查询所有数字含义的信息,似乎无法在文档中找到它。答案 0 :(得分:1)
要获取行号,假设该地点名为boolean okay;
do {
System.out.printf("What is your question?\n");
questionStr = keyboard.nextLine();
int length = questionStr.length();
if (questionStr.length() == 0) {
System.out.println("Not allowed.");
okay = false;
} else if (!(questionStr.charAt(length - 1) == '?')) {
System.out.println("Add question mark.");
okay = false;
} else if (questionStr.length() > 60) {
okay = false;
}
okay = true;
} while (!okay);
,您可以使用l
。
更一般地说,给定位置l.begin.line
,数字代表|file:///randomfile.java|(0,11817,<1,0>,<185,1>)
,所以:
(offset, length, < startingLine, startingColumn >, < endingLine, endingColumn> )
是此位置开始的给定文件中的0
; offset
是11817
这些允许您使用位置来标识文件的一部分,例如特定的类或方法定义。
length
是位置1
)
startingLine
是位置0
)
startingColumn
是位置185
)
endingLine
是位置1
)
偏移量和长度足以定义该位置所覆盖的文件的实际部分,因此您可以将它们视为可选项,并且不需要包含它们。至少在列中,它也不总是显而易见的,正确的值是什么,因为制表符可以在编辑器中扩展为多个字符。
要访问该位置的每个部分,请使用以下内容:
endingColumn
您可以在此处找到更多详细信息,包括有关如何访问位置其他部分的文档,例如URI中使用的方案或引用的资源/文件的名称:http://tutor.rascal-mpl.org/Rascal/Rascal.html#/Rascal/Expressions/Values/Location/Location.html