parse_carbon

Function parse_carbon 

Source
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),
}