要避免生成的名字与用户所给出的名字有冲突。
方案:
假设生成的 name 都以 _ 为前缀, 并且限制用户所用的 name 不能以 _ 为前缀。 就可以避免生成的名字与用户给出的名字冲突。
注意,transpile 到系统汇编语言时, 名字又经过了转化,这个转化要保持名字之间的差异, 避免消除差异所导致的冲突。
更正
[2025-11-28]
上面的方案有问题:
bundling 和 compiling 过程都会增加前缀。 这导致 bundling 和 compiling 的顺序相互依赖。
<p1><p2><name><p2><p1><name>
更正方案:
bundling 过程中所依赖的 mod 加
§前缀, 当前 mod 家加_前缀(c 不支持§)。compiling 过程中不生成前缀,只生成后缀。 用
©作为分割符号来避免与用户定义的名字相冲突。
这回导致 § 和 © 是用户不能在名字中使用的字符。
_ 也需要被保留,因为编译器生成局部变量的时候要用 _ 前缀。