PreviousUpNext

15.3.4  src/app/future-lex/src/regular-expression.api

## regular-expression.api

# Compiled by:
#     src/app/future-lex/src/lexgen.lib



# RE representation and manipulation



api Regular_Expression {

    package sym:      Interval_Domain;          # Interval_Domain       is from   src/lib/src/interval-domain.api
    package symbol_set:  Interval_Set;          # Interval_Set          is from   src/lib/src/interval-set.api

    Symbol;
    Symbol_Set;
    Re;

    any:           Re;  #  wildcard 
    none:          Re;  #  EMPTY language 
    epsilon:       Re;  #  the NIL character (of length 0) 

    make_symbol:      Symbol -> Re;
    make_symbol_set:  Symbol_Set -> Re;

    make_or:         (Re, Re) -> Re;
    make_and:        (Re, Re) -> Re;
    make_xor:        (Re, Re) -> Re;
    make_not:         Re -> Re;
    make_meld:       (Re, Re) -> Re;
    make_closure:     Re -> Re;
    make_option:      Re -> Re;
    make_repetition: (Re, Int, Int) -> Re;
    make_at_least:   (Re, Int) -> Re;

    is_none:     Re -> Bool;
    nullable:   Re -> Bool;
    derivative:  Symbol -> Re -> Re;
    derivatives:   vector::Vector( Re ) -> 
                       List( ((vector::Vector( Re ) ), Symbol_Set));

    symbol_to_string:  Symbol -> String;
    to_string:   Re -> String;
    compare:    (Re, Re) -> Order;

};


## COPYRIGHT (c) 2005 John Reppy (http://www.cs.uchicago.edu/~jhr) Aaron Turon (adrassi@gmail.com)
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext