PreviousUpNext

15.3.240  src/lib/compiler/front/parser/raw-syntax/raw-syntax-junk.api

## raw-syntax-junk.api

# Compiled by:
#     src/lib/compiler/front/parser/parser.sublib



###                    "The scientist does not study nature
###                     because it is useful; he studies it
###                     because he delights in it, and he
###                     delights in it because it is beautiful.
###
###                    "If nature were not beautiful, it would
###                     not be worth knowing, and if nature
###                     were not worth knowing, life would not
###                     be worth living."
###
###                                      -- Henri Poincaré 



stipulate
    package em  =  error_message;                                       # error_message         is from   src/lib/compiler/front/basics/errormsg/error-message.pkg
    package raw =  raw_syntax;                                          # raw_syntax            is from   src/lib/compiler/front/parser/raw-syntax/raw-syntax.pkg
    package sy  =  symbol;                                              # symbol                is from   src/lib/compiler/front/basics/map/symbol.pkg
herein

    api Raw_Syntax_Junk {

        # Some constants for use in rule actions:

        post_dotdot_hash:    Unt;
        dotdot_hash:         Unt;

        post_plusplus_hash:  Unt;
        plusplus_hash:       Unt;

        post_dashdash_hash:  Unt;
        dashdash_hash:       Unt;

        preamper_hash:      Unt;
        preatsign_hash:     Unt;
        preback_hash:       Unt;
        prebang_hash:       Unt;
        prebar_hash:        Unt;
        prebuck_hash:       Unt;
        precaret_hash:      Unt;
        predash_hash:       Unt;
        preplus_hash:       Unt;
        prestar_hash:       Unt;
        preslash_hash:      Unt;
        pretilda_hash:      Unt;
        prepercnt_hash:     Unt;
        preqmark_hash:      Unt;

        prelangle_hash:     Unt;
        postrangle_hash:    Unt;

        prelbrace_hash:     Unt;
        postrbrace_hash:    Unt;

        postlbracket_hash:  Unt;
        lbracket_hash:      Unt;

        amper_hash:         Unt;
        atsign_hash:        Unt;
        back_hash:          Unt;
        bang_hash:          Unt;
        bar_hash:           Unt;
        buck_hash:          Unt;
        caret_hash:         Unt;
        dash_hash:          Unt;
        plus_hash:          Unt;
        slash_hash:         Unt;
        star_hash:          Unt;
        tilda_hash:         Unt;
        percnt_hash:        Unt;
        qmark_hash:         Unt;

        equal_hash:         Unt;
        eqeq_hash:          Unt;
        weakdot_hash:       Unt;
        bogus_hash:         Unt;
        dollar_bogus_hash:  Unt;
        barens_hash:        Unt;
        langle_hash:        Unt;
        rangle_hash:        Unt;
        lbrace_hash:        Unt;
        rbrace_hash:        Unt;

        postamper_hash:     Unt;
        postatsign_hash:    Unt;
        postback_hash:      Unt;
        postbang_hash:      Unt;
        postbar_hash:       Unt;
        postbuck_hash:      Unt;
        postcaret_hash:     Unt;
        postdash_hash:      Unt;
        postplus_hash:      Unt;
        poststar_hash:      Unt;
        postslash_hash:     Unt;
        posttilda_hash:     Unt;
        postpercnt_hash:    Unt;
        postqmark_hash:     Unt;

        field_hash:         Unt;
        generic_hash:       Unt;
        get_fields_hash:    Unt;
        in_hash:            Unt;
        include_hash:       Unt;
        infix_hash:         Unt;
        infixr_hash:        Unt;
        message_hash:       Unt;
        method_hash:        Unt;
        nonfix_hash:        Unt;
        overloaded_hash:    Unt;
        raise_hash:         Unt;
        recursive_hash:     Unt;

        post_dotdot_string: String;
        dotdot_string:      String;

        post_plusplus_string: String;
        plusplus_string:      String;

        post_dashdash_string: String;
        dashdash_string:      String;

        preamper_string:    String;
        preatsign_string:   String;
        preback_string:     String;
        prebang_string:     String;
        prebar_string:      String;
        prebuck_string:     String;
        precaret_string:    String;
        predash_string:     String;
        prepercnt_string:   String;
        preplus_string:     String;
        preqmark_string:    String;
        preslash_string:    String;
        prestar_string:     String;
        pretilda_string:    String;

        prelangle_string:   String;
        postrangle_string:  String;

        prelbrace_string:    String;
        postrbrace_string:   String;
        postlbracket_string: String;
        lbracket_string:     String;

        amper_string:       String;
        atsign_string:      String;
        back_string:        String;
        bang_string:        String;
        bar_string:         String;
        buck_string:        String;
        caret_string:       String;
        dash_string:        String;
        percnt_string:      String;
        plus_string:        String;
        qmark_string:       String;
        slash_string:       String;
        star_string:        String;
        tilda_string:       String;

        postamper_string:   String;
        postatsign_string:  String;
        postback_string:    String;
        postbang_string:    String;
        postbar_string:     String;
        postbuck_string:    String;
        postcaret_string:   String;
        postdash_string:    String;
        postpercnt_string:  String;
        postplus_string:    String;
        postqmark_string:   String;
        postslash_string:   String;
        poststar_string:    String;
        posttilda_string:   String;

        equal_string:        String;
        eqeq_string:         String;
        weakdot_string:      String;
        bogus_string:        String;
        dollar_bogus_string: String;
        barens_string:       String;
        langle_string:       String;
        rangle_string:       String;
        lbrace_string:       String;
        rbrace_string:       String;

        field_string:        String;
        generic_string:      String;
        get_fields_string:   String;
        in_string:           String;
        include_string:      String;
        infix_string:        String;
        infixr_string:       String;
        message_string:      String;
        method_string:       String;
        nonfix_string:       String;
        overloaded_string:   String;
        raise_string:        String;
        recursive_string:    String;

        check_fixity:  (Int,
                     em::Plaint_Sink)
                   -> Int;

        # BUILDS VARIOUS CONSTRUCTIONS

        make_declaration_sequence
            :
            (raw::Declaration, raw::Declaration)
            ->
            raw::Declaration;

        layered:  ( raw::Case_Pattern,
                    raw::Case_Pattern,
                    em::Plaint_Sink
                  )
                 -> raw::Case_Pattern;

        # SYMBOLS 
        #
        arrow_type:         sy::Symbol;
        bogus_id:           sy::Symbol;
        exception_id:       sy::Symbol;
        sym_arg:            sy::Symbol;
        it_symbol:    List( sy::Symbol );

        void_expression:  raw::Raw_Expression;
        void_pattern:     raw::Case_Pattern;

        block_to_let: List( raw::Declaration ) -> raw::Raw_Expression;

        # QUOTES 
        #
        quote_expression:      String -> raw::Raw_Expression;
        antiquote_expression:  raw::Raw_Expression -> raw::Raw_Expression;


        expression_to_declaration
            :
            ( raw::Raw_Expression,
              raw::Source_Code_Position,
              raw::Source_Code_Position
            )
            ->
            raw::Declaration;


        mark_expression
            :
            ( raw::Raw_Expression,
              raw::Source_Code_Position,
              raw::Source_Code_Position
            )
            ->
            raw::Raw_Expression;


        mark_declaration
            :
            ( raw::Declaration,
              raw::Source_Code_Position,
              raw::Source_Code_Position
            )
            ->
            raw::Declaration;


        extract_toplevel_declarations
            :
            raw::Declaration
            ->
            List( raw::Declaration );
            #
            # Given a raw-syntax declaration equivalent to
            #
            #     my it = foo ();
            #     my it = bar ();
            #     my it = zot ();
            #     ...
            #
            # return a list of the individual declarations.
            # For more motivation and details see comments in
            #     src/lib/compiler/front/parser/raw-syntax/raw-syntax-junk.pkg

    };  #  Api Raw_Syntax_Junk 
end;



## Copyright 1992 by AT&T Bell Laboratories 
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext