2016-10-19 15 views
1

今私がしようとしていることについては、locタイプの行番号を取得する必要があります。ロープからの情報の取得

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

私がトップ(...)を使用して、最初の部分を取得することができますが、私は第二部、より具体的な得るのですか:行番号を、私はこのケースで信じているそれはライン#1になります。

PS誰かが私にすべての数字の意味に関する情報を案内することができますが、ドキュメントで見つけられないようです。

答えて

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最初の行(startingLine)が位置
  • 0に含まれる最初の列(startingColumn)が位置
  • 185に含まれる最後の行(endingLine)が位置
  • に含まれます
  • 1は、その場所に含まれる最後の列(endingColumn)です。

オフセットと長さは、場所でカバーされているファイルの実際の部分を十分に定義しているため、オプションとして表示することができ、含める必要はありません。また、タブの文字をエディタ内の複数の文字に展開できるので、少なくともカラムでは必ずしも適切な値であるとは限りません。

は場所のこれらの部分のそれぞれにアクセスするには、次の使用:

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

正直な回答ありがとうございます。ちょうど私が探していたもの。ファイルへのオフセットは、バイトまたは文字で表されますか? –

関連する問題