pub fn compilation_unit_declaration<'a>(
tokens: TokenStream,
) -> IResult<TokenStream, CompilationUnitDeclaration<'a>>
Expand description
解析编译单元声明从给定的标记流中。
这个函数接受一个 TokenStream
并返回一个 CompilationUnitDeclaration
以及剩余的标记。
§参数
tokens
- 一个TokenStream
,从中解析编译单元声明。
§返回
包含剩余标记和 CompilationUnitDeclaration
的元组。
§示例
fn main() -> anyhow::Result<()> {
use java_lang::{
TokenStream,
compilation_unit_declaration
};
let (_, tokens) = TokenStream::from_str("
package com.test;
import java.io.File;
")?;
assert!(!tokens.is_empty());
let (tokens, cu) = compilation_unit_declaration(tokens)?;
assert_eq!(cu.package().unwrap().name, "com.test");
assert_eq!(cu.imports().len(), 1);
assert!(tokens.is_empty());
Ok(())
}
§错误
如果标记流不包含有效的编译单元声明,这个函数将返回一个错误。