줄 번호를 얻으려면 위치가 l
이라고 가정 할 때 l.begin.line
을 사용합니다. 주어진 위치 |file:///randomfile.java|(0,11817,<1,0>,<185,1>)
보다 일반적
, 숫자는 이렇게, (offset, length, < startingLine, startingColumn >, < endingLine, endingColumn>)
나타낸다 :
0
이 시작 위치 지정된 파일에 offset
이고;
11817
는 위치
이 당신이 예를 들어, 파일의 특정 클래스 나 메소드 정의 부분을 식별 할 위치를 사용할 수 있도록이 적용되는 length
입니다.
1
는
185
마지막 라인 (endingLine
)의 위치에 포함된다 (startingLine
)는
0
첫 번째 열 (startingColumn
)는 위치에 포함되어있는 위치에 포함 된 첫번째 라인
- 이 (가)
에 포함 된 마지막 열입니다
오프셋 및 길이는 위치에서 충분히 다루는 파일의 실제 부분을 정의하므로 선택 사항으로 볼 수 있으며 포함 할 필요가 없습니다. 탭 문자가 편집기에서 여러 문자로 확장 될 수 있기 때문에 적어도 적절한 열이있는 것은 아닙니다.
이 위치 이러한 각 부분에 액세스하려면 다음을 사용
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).offset;
int: 0
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).length;
int: 11817
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).begin;
tuple[int line,int column]: <1,0>
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).begin.line;
int: 1
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).begin.column;
int: 0
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).end;
tuple[int line,int column]: <185,1>
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).end.line;
int: 185
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).end.column;
int: 1
당신은 계획대로 위치의 다른 부분에 액세스하는 방법에 대한 문서를 포함 여기에서 자세한 내용을 찾을 수 있습니다 URI 또는 참조 된 리소스/파일의 이름에 사용 : http://tutor.rascal-mpl.org/Rascal/Rascal.html#/Rascal/Expressions/Values/Location/Location.html
정교한 답변에 감사드립니다. 내가 뭘 찾고 있었는지. 파일에 대한 오프셋은 바이트 또는 문자로 표시됩니까? –