我有个简单的问题。
假设我有个地点
loc l = |file:////Users/steven/tst.txt|;
我想通过选择第5-10行来使它更加去化,我该怎么做呢?
简单陈述
l.begin.line = 5; l.begin.column = 0;
出问题了。
因此,我有以下问题:
l.begin.line
和l.begin.column
l.offset
和l.length
?发布于 2016-02-15 19:25:35
问得好。源位置的规则是,如果您在文件中提供位置信息,并且希望提供行和列信息,则还需要偏移量/长度,如下所示:
rascal>a = |file:///Users/steven/tst.txt|;
loc: |file:///Users/steven/tst.txt|
rascal>b = a(0,10,<2,0>,<4,10>);
loc: |file:///Users/steven/tst.txt|(0,10,<2,0>,<4,10>)
您还可以直接在文字中键入它:
rascal>a = |file:///Users/steven/tst.txt|(0,10,<2,0>,<4,10>);
loc: |file:///Users/steven/tst.txt|(0,10,<2,0>,<4,10>)
或者没有行/列信息:
rascal>a = |file:///Users/steven/tst.txt|(0,10);
loc: |file:///Users/steven/tst.txt|(0,10)
不使用行/列信息创建一个没有偏移量/长度en的位置是不可能的。要获得创建完整loc
所需的信息,通常需要访问文件的内容。
PS:我们计算文件中的unicode字符,而不是字节。
https://stackoverflow.com/questions/35408891
复制相似问题