PreviousUpNext

15.3.54  src/lib/c-kit/src/ast/cnv-ext.api

## cnv-ext.api

# Compiled by:
#     src/lib/c-kit/src/ast/ast.sublib

api Cnv_Ext {

    Core_Conversion_Funs = 
        {
         state_funs:  state::State_Funs,
         munge_ty_decr: ((raw_syntax::Ctype,parse_tree::Declarator) ->(raw_syntax::Ctype, Null_Or( String )) ),

         cnv_type:  (Bool,parse_tree::Decltype) -> (raw_syntax::Ctype,raw_syntax::Storage_Ilk),
         cnv_expression: parse_tree::Expression -> (raw_syntax::Ctype, raw_syntax::Expression),
         cnv_statement:  parse_tree::Statement -> raw_syntax::Statement,
         cnv_external_decl: parse_tree::External_Decl -> List( raw_syntax::External_Decl ),

         wrap_expr: ((raw_syntax::Ctype, raw_syntax::Core_Expression) -> (raw_syntax::Ctype, raw_syntax::Expression)),
         wrap_statement: raw_syntax::Core_Statement -> raw_syntax::Statement,
         wrap_decl: raw_syntax::Core_External_Decl -> raw_syntax::External_Decl
         };

    Expression_Ext
       =
       parse_tree_ext::Expression_Ext( parse_tree::Specifier,
                                    parse_tree::Declarator,
                                    parse_tree::Ctype,
                                    parse_tree::Decltype,
                                    parse_tree::Operator,
                                    parse_tree::Expression,
                                    parse_tree::Statement
                                  );


    Statement_Ext
       =
       parse_tree_ext::Statement_Ext( parse_tree::Specifier,
                                   parse_tree::Declarator,
                                   parse_tree::Ctype,
                                   parse_tree::Decltype,
                                   parse_tree::Operator,
                                   parse_tree::Expression,
                                   parse_tree::Statement
                                 );


    External_Decl_Ext
       =
       parse_tree_ext::External_Decl_Ext( parse_tree::Specifier,
                                      parse_tree::Declarator,
                                      parse_tree::Ctype,
                                      parse_tree::Decltype,
                                      parse_tree::Operator,
                                      parse_tree::Expression,
                                      parse_tree::Statement
                                     );


    Specifier_Ext
       =
       parse_tree_ext::Specifier_Ext( parse_tree::Specifier,
                                   parse_tree::Declarator,
                                   parse_tree::Ctype,
                                   parse_tree::Decltype,
                                   parse_tree::Operator,
                                   parse_tree::Expression,
                                   parse_tree::Statement
                                 );


    Declarator_Ext
       =
       parse_tree_ext::Declarator_Ext( parse_tree::Specifier,
                                    parse_tree::Declarator,
                                    parse_tree::Ctype,
                                    parse_tree::Decltype,
                                    parse_tree::Operator,
                                    parse_tree::Expression,
                                    parse_tree::Statement
                                   );


    Declaration_Ext
       =
       parse_tree_ext::Declaration_Ext( parse_tree::Specifier,
                                     parse_tree::Declarator,
                                     parse_tree::Ctype,
                                     parse_tree::Decltype,
                                     parse_tree::Operator,
                                     parse_tree::Expression,
                                     parse_tree::Statement
                                    );


    Extension_Funs
       = 
       {   cnvexp:         Expression_Ext -> (raw_syntax::Ctype, raw_syntax::Expression),

           cnvstat:        Statement_Ext -> raw_syntax::Statement,

           cnvbinop:       { binop: parse_tree_ext::Operator_Ext, arg1expr: parse_tree::Expression, arg2expr: parse_tree::Expression }
                           -> (raw_syntax::Ctype, raw_syntax::Expression),

           cnvunop:        { unop: parse_tree_ext::Operator_Ext, arg_expr: parse_tree::Expression }
                           -> (raw_syntax::Ctype, raw_syntax::Expression),

           cnvexternal_decl: External_Decl_Ext -> List( raw_syntax::External_Decl ),

           cnvspecifier:    { is_shadow: Bool, rest:  List( parse_tree::Specifier ) } 
                             -> Specifier_Ext
                             -> raw_syntax::Ctype,

           cnvdeclarator:   (raw_syntax::Ctype, Declarator_Ext) 
                            -> (raw_syntax::Ctype, Null_Or( String )),

           cnvdeclaration: Declaration_Ext -> List( raw_syntax::Declaration )
       };

     make_extension_funs: Core_Conversion_Funs -> Extension_Funs;

}; #  Api CNVEXTENSION 


## Changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext