2016-10-19 2 views
1

지금 당장 무엇을 하려는지에 대해서는 loc 유형의 라인 번호를 알아야합니다.loc에서 정보 얻기

|file:///randomfile.java|(0,11817,<1,0>,<185,1>)

나는 최고 (...)를 사용하여 첫 번째 부분을 얻을 수 있지만 내가 두 번째 부분과보다 구체적인 얻는 방법 : 줄 번호를, 나는 그것이 라인 # 1이 될 것이다이 경우 믿는다 .

추신 : 누군가가 나를 모든 숫자의 의미에 대한 정보로 안내 할 수 있습니까? 문서에서 찾을 수없는 것 같습니다.

답변

1

줄 번호를 얻으려면 위치가 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

+0

정교한 답변에 감사드립니다. 내가 뭘 찾고 있었는지. 파일에 대한 오프셋은 바이트 또는 문자로 표시됩니까? –