Skip to content

Commit

Permalink
Merge branch 'volsa/referenceto' of https://github.com/plc-lang/rusty
Browse files Browse the repository at this point in the history
…into volsa/referenceto
  • Loading branch information
volsa committed Jul 9, 2024
2 parents 180e51b + 88f2c21 commit 05ee69f
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
24 changes: 24 additions & 0 deletions compiler/plc_driver/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ pub struct CompileParameters {
#[clap(short, long, global = true, name = "output-file", help = "Write output to <output-file>")]
pub output: Option<String>,

#[clap(
long = "ast",
group = "format",
global = true,
help = "Emit AST (Abstract Syntax Tree) as output"
)]
pub output_ast: bool,

#[clap(
long = "ir",
group = "format",
Expand Down Expand Up @@ -637,6 +645,16 @@ mod cli_tests {
fn valid_output_formats() {
let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--ir")).unwrap();
assert!(parameters.output_ir);
assert!(!parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
assert!(!parameters.output_shared_obj);
assert!(!parameters.output_reloc_code);

let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--ast")).unwrap();
assert!(!parameters.output_ir);
assert!(parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
Expand All @@ -645,6 +663,7 @@ mod cli_tests {

let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--bc")).unwrap();
assert!(!parameters.output_ir);
assert!(!parameters.output_ast);
assert!(parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
Expand All @@ -653,6 +672,7 @@ mod cli_tests {

let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--static")).unwrap();
assert!(!parameters.output_ir);
assert!(!parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
Expand All @@ -661,6 +681,7 @@ mod cli_tests {

let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--pic")).unwrap();
assert!(!parameters.output_ir);
assert!(!parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(parameters.output_pic_obj);
Expand All @@ -669,6 +690,7 @@ mod cli_tests {

let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--shared")).unwrap();
assert!(!parameters.output_ir);
assert!(!parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
Expand All @@ -677,6 +699,7 @@ mod cli_tests {

let parameters = CompileParameters::parse(vec_of_strings!("input.st", "--relocatable")).unwrap();
assert!(!parameters.output_ir);
assert!(!parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
Expand All @@ -685,6 +708,7 @@ mod cli_tests {

let parameters = CompileParameters::parse(vec_of_strings!("input.st")).unwrap();
assert!(!parameters.output_ir);
assert!(!parameters.output_ast);
assert!(!parameters.output_bit_code);
assert!(!parameters.output_obj_code);
assert!(!parameters.output_pic_obj);
Expand Down
5 changes: 5 additions & 0 deletions compiler/plc_driver/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,11 @@ pub fn compile_with_options(compile_options: CompilationContext) -> Result<()> {
.index(ctxt.provider())
.annotate(ctxt.provider());

if compile_parameters.output_ast {
println!("{:#?}", annotated_project.units);
return Ok(());
}

// 4 : Validate
annotated_project.validate(&ctxt, &mut diagnostician)?;

Expand Down
2 changes: 1 addition & 1 deletion src/resolver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ impl AnnotationMap for AnnotationMapImpl {
}
}

#[derive(Default)]
#[derive(Default, Debug)]
pub struct StringLiterals {
pub utf08: FxHashSet<String>,
pub utf16: FxHashSet<String>,
Expand Down

0 comments on commit 05ee69f

Please sign in to comment.