Shebang
shebang 是一个可选行,通常在类 Unix 系统中用于指定执行文件的解释器。
Example
#!/usr/bin/env rustx fn main() { println!("Hello!"); }
Lexer
SHEBANG →
#! !( ( WHITESPACE | LINE_COMMENT | BLOCK_COMMENT )* [ )
~LF* ( LF | EOF )
shebang 以字符 #! 开头,延伸到第一个 U+000A (LF) 或如果没有 LF 则延伸到 EOF。如果 #! 字符后面跟着 [(忽略任何中间的注释或空白),则该行不被视为 shebang(以避免与内部属性的歧义)。
shebang 可以直接出现在文件开头或可选的字节顺序标记之后。