定位(loc
)的语法(根据tutor.rascal.org)定义为:| Uri | ( O, L, <BL,BC>, <EL,EC> )
,其中
Uri
是任意统一资源标识符(URI)。O
和L
是整数表达式,其中O
给出了文件开头的偏移量,并且&#39; L&#39;给出文件的长度。BL
和BC
是表示起始行和列的整数。EC
和EL
是表示结束行和列的整数。我目前正在尝试复制loc
的实例并修改值(BL
,BC
,EC
,EL
)。我在做这件事时遇到了一些麻烦。我试过了。
loc
参数。显然这些都没有成功。我无法在Rascal文档中找到更多关于这样做的内容。我可以获得有关如何访问这些值的任何指示吗?
谢谢!
答案 0 :(得分:2)
访问和修改源位置的字段的方式与其他数据类型的值相同。有关可用的所有字段,请参阅源位置文档。
以下是一个例子:
rascal>l = |project://rascal/src/org/rascalmpl/library/lang/rascal/types/CheckTypes.rsc|(243216,14,<4598,8>,<4598,22>);
loc: |project://rascal/src/org/rascalmpl/library/lang/rascal/types/CheckTypes.rsc|(243216,14,<4598,8>,<4598,22>)
rascal>l.begin.line
int: 4598
rascal>l.begin.column
int: 8
rascal>l.begin.line=3;
loc: |project://rascal/src/org/rascalmpl/library/lang/rascal/types/CheckTypes.rsc|(243216,14,<3,8>,<4598,22>)
首先,我将l
初始化为某个源位置,然后我访问此源位置的line
的{{1}}和column
。最后我将开始行设置为3。
希望这有帮助。