在 Rascal 中设置 loc 类型的行属性?
Setting line attributes for loc type in Rascal?
位置 (loc
) 的语法定义(根据 tutor.rascal.org)为:| Uri | ( O, L, <BL,BC>, <EL,EC> )
哪里
Uri
是任意的统一资源标识符 (URI)。
O
和 L
是整数表达式,其中 O
给出文件开头的偏移量,'L' 给出文件的长度。
BL
和 BC
是表示开始行和列的整数。
EC
和EL
是表示结束行和列的整数。
我目前正在尝试复制 loc
的实例并修改值(BL
、BC
、EC
、EL
)。我在做这件事时遇到了一些麻烦。我试过了。
- 使用语法定义匹配
loc
参数的模式。
- 正在尝试像访问限定名称一样访问字段。
显然 none 这些都解决了。我无法在 Rascal 文档中找到更多关于这样做的信息。我可以获得有关如何访问这些值的任何指示吗?
谢谢!
访问和修改源位置字段的方式与其他数据类型的值相同。有关所有可用字段的信息,请参阅源位置文档。
这是一个例子:
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
初始化到某个源位置,接下来我访问此源位置的 begin
的 line
和 column
。最后我将开始行设置为 3.
希望这对您有所帮助。
位置 (loc
) 的语法定义(根据 tutor.rascal.org)为:| Uri | ( O, L, <BL,BC>, <EL,EC> )
哪里
Uri
是任意的统一资源标识符 (URI)。O
和L
是整数表达式,其中O
给出文件开头的偏移量,'L' 给出文件的长度。BL
和BC
是表示开始行和列的整数。EC
和EL
是表示结束行和列的整数。
我目前正在尝试复制 loc
的实例并修改值(BL
、BC
、EC
、EL
)。我在做这件事时遇到了一些麻烦。我试过了。
- 使用语法定义匹配
loc
参数的模式。 - 正在尝试像访问限定名称一样访问字段。
显然 none 这些都解决了。我无法在 Rascal 文档中找到更多关于这样做的信息。我可以获得有关如何访问这些值的任何指示吗?
谢谢!
访问和修改源位置字段的方式与其他数据类型的值相同。有关所有可用字段的信息,请参阅源位置文档。
这是一个例子:
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
初始化到某个源位置,接下来我访问此源位置的 begin
的 line
和 column
。最后我将开始行设置为 3.
希望这对您有所帮助。