pub fn parse_carbon(input: &str) -> ParseResult<Pairs<'_, Rule>>Expand description
Parses a complete Carbon program.
This is the main entry point for parsing Carbon source code. It expects a complete, valid Carbon program which may contain multiple top-level declarations including functions, variables, and other constructs.
§Arguments
input- The complete Carbon source code as a string slice
§Returns
Returns a ParseResult containing an iterator over the top-level parse tree
nodes on success, or a detailed ParseError on failure.
§Grammar Rule
This function uses the program grammar rule from carbon.pest.
§Examples
§Basic Usage
use carbon_parser::parse_carbon;
let code = r#"
fn main() -> i32 {
return 0;
}
"#;
let result = parse_carbon(code);
assert!(result.is_ok());§Multiple Functions
use carbon_parser::parse_carbon;
let code = r#"
fn add(x: i32, y: i32) -> i32 {
return x;
}
fn main() -> i32 {
return 0;
}
"#;
let result = parse_carbon(code);
assert!(result.is_ok());§With Variables
use carbon_parser::parse_carbon;
let code = r#"
var counter: i32 = 0;
fn increment(x: i32) -> i32 {
return x;
}
"#;
let result = parse_carbon(code);
assert!(result.is_ok());§Error Handling
use carbon_parser::parse_carbon;
let invalid = "fn broken( { }";
match parse_carbon(invalid) {
Ok(_) => panic!("Should have failed"),
Err(e) => println!("Expected error: {}", e),
}