@@ -27,7 +27,15 @@ pub struct CompileParameters {
2727 global = true ,
2828 help = "Emit AST (Abstract Syntax Tree) as output"
2929 ) ]
30- pub output_ast : bool ,
30+ pub print_ast : bool ,
31+
32+ #[ clap(
33+ long = "ast-lowered" ,
34+ group = "format" ,
35+ global = true ,
36+ help = "Emit lowered AST (Abstract Syntax Tree) as output"
37+ ) ]
38+ pub print_ast_lowered : bool ,
3139
3240 #[ clap( long = "version" , group = "format" , global = true ) ]
3341 pub build_info : bool ,
@@ -673,7 +681,8 @@ mod cli_tests {
673681 fn valid_output_formats ( ) {
674682 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--ir" ) ) . unwrap ( ) ;
675683 assert ! ( parameters. output_ir) ;
676- assert ! ( !parameters. output_ast) ;
684+ assert ! ( !parameters. print_ast) ;
685+ assert ! ( !parameters. print_ast_lowered) ;
677686 assert ! ( !parameters. output_bit_code) ;
678687 assert ! ( !parameters. output_obj_code) ;
679688 assert ! ( !parameters. output_pic_obj) ;
@@ -682,7 +691,18 @@ mod cli_tests {
682691
683692 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--ast" ) ) . unwrap ( ) ;
684693 assert ! ( !parameters. output_ir) ;
685- assert ! ( parameters. output_ast) ;
694+ assert ! ( parameters. print_ast) ;
695+ assert ! ( !parameters. print_ast_lowered) ;
696+ assert ! ( !parameters. output_bit_code) ;
697+ assert ! ( !parameters. output_obj_code) ;
698+ assert ! ( !parameters. output_pic_obj) ;
699+ assert ! ( !parameters. output_shared_obj) ;
700+ assert ! ( !parameters. output_reloc_code) ;
701+
702+ let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--ast-lowered" ) ) . unwrap ( ) ;
703+ assert ! ( !parameters. output_ir) ;
704+ assert ! ( !parameters. print_ast) ;
705+ assert ! ( parameters. print_ast_lowered) ;
686706 assert ! ( !parameters. output_bit_code) ;
687707 assert ! ( !parameters. output_obj_code) ;
688708 assert ! ( !parameters. output_pic_obj) ;
@@ -691,7 +711,8 @@ mod cli_tests {
691711
692712 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--bc" ) ) . unwrap ( ) ;
693713 assert ! ( !parameters. output_ir) ;
694- assert ! ( !parameters. output_ast) ;
714+ assert ! ( !parameters. print_ast) ;
715+ assert ! ( !parameters. print_ast_lowered) ;
695716 assert ! ( parameters. output_bit_code) ;
696717 assert ! ( !parameters. output_obj_code) ;
697718 assert ! ( !parameters. output_pic_obj) ;
@@ -700,7 +721,8 @@ mod cli_tests {
700721
701722 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--static" ) ) . unwrap ( ) ;
702723 assert ! ( !parameters. output_ir) ;
703- assert ! ( !parameters. output_ast) ;
724+ assert ! ( !parameters. print_ast) ;
725+ assert ! ( !parameters. print_ast_lowered) ;
704726 assert ! ( !parameters. output_bit_code) ;
705727 assert ! ( parameters. output_obj_code) ;
706728 assert ! ( !parameters. output_pic_obj) ;
@@ -709,7 +731,8 @@ mod cli_tests {
709731
710732 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--pic" ) ) . unwrap ( ) ;
711733 assert ! ( !parameters. output_ir) ;
712- assert ! ( !parameters. output_ast) ;
734+ assert ! ( !parameters. print_ast) ;
735+ assert ! ( !parameters. print_ast_lowered) ;
713736 assert ! ( !parameters. output_bit_code) ;
714737 assert ! ( !parameters. output_obj_code) ;
715738 assert ! ( parameters. output_pic_obj) ;
@@ -718,7 +741,8 @@ mod cli_tests {
718741
719742 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--shared" ) ) . unwrap ( ) ;
720743 assert ! ( !parameters. output_ir) ;
721- assert ! ( !parameters. output_ast) ;
744+ assert ! ( !parameters. print_ast) ;
745+ assert ! ( !parameters. print_ast_lowered) ;
722746 assert ! ( !parameters. output_bit_code) ;
723747 assert ! ( !parameters. output_obj_code) ;
724748 assert ! ( !parameters. output_pic_obj) ;
@@ -727,7 +751,8 @@ mod cli_tests {
727751
728752 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" , "--relocatable" ) ) . unwrap ( ) ;
729753 assert ! ( !parameters. output_ir) ;
730- assert ! ( !parameters. output_ast) ;
754+ assert ! ( !parameters. print_ast) ;
755+ assert ! ( !parameters. print_ast_lowered) ;
731756 assert ! ( !parameters. output_bit_code) ;
732757 assert ! ( !parameters. output_obj_code) ;
733758 assert ! ( !parameters. output_pic_obj) ;
@@ -736,7 +761,8 @@ mod cli_tests {
736761
737762 let parameters = CompileParameters :: parse ( vec_of_strings ! ( "input.st" ) ) . unwrap ( ) ;
738763 assert ! ( !parameters. output_ir) ;
739- assert ! ( !parameters. output_ast) ;
764+ assert ! ( !parameters. print_ast) ;
765+ assert ! ( !parameters. print_ast_lowered) ;
740766 assert ! ( !parameters. output_bit_code) ;
741767 assert ! ( !parameters. output_obj_code) ;
742768 assert ! ( !parameters. output_pic_obj) ;
0 commit comments