<!-- ML-Doc/syntax-sig.mldoc --> <!-- Entities.sgml entry <!ENTITY REGEXP-SYNTAX SDATA "../syntax-sig.sml"> --> <!DOCTYPE ML-DOC SYSTEM> <COPYRIGHT OWNER="Bell Labs, Lucent Technologies" YEAR=1998> <VERSION VERID="1.0" YEAR=1998 MONTH=6 DAY=3> <TITLE>The RegExpSyntax structure</TITLE> <INTERFACE> <HEAD>The <CD/RegExpSyntax/ structure</HEAD> <!-- optional SEEALSO; uncomment to use --> <!-- <SEEALSO> --> <!-- non-empty list of XREFS here --> <!-- </SEEALSO> --> <PP> This structure implements the abstract syntax for regular expressions to which the concrete syntax translates and that is recognized by matching engines. <PP> <STRUCTURE STRID="RegExpSyntax"> <SIGBODY SIGID="REGEXP_SYNTAX" FILE=REGEXP-SYNTAX> <SPEC> <EXN>CannotParse <SPEC> <EXN>CannotCompile <SPEC> <SUBSTRUCT>CharSet<ID>ORD_SET <WHERETYPE><ID>Key.ord_key</ID><TY>char</WHERETYPE> </SUBSTRUCT> <SPEC> <DATATYPE><ID>syntax <CONS>Group<TY>syntax <CONS>Alt<TY>syntax list <CONS>Concat<TY>syntax list <CONS>Interval<TY>(syntax * int * int option) <CONS>Option<TY>syntax <CONS>Star<TY>syntax <CONS>Plus<TY>syntax <CONS>MatchSet<TY>CharSet.set <CONS>NonmatchSet<TY>CharSet.set <CONS>Char<TY>char <CONS>Begin <CONS>End </DATATYPE> <SPEC> <VAL>addRange<TY>(CharSet.set * char * char) -> CharSet.set <COMMENT> <PROTOTY> addRange (<ARG/s/, <ARG/c1/, <ARG/c2/) </PROTOTY> adds the range of characters from <ARG/c1/ to <ARG/c2/ to the character set <ARG/s/. <SPEC> <VAL>allChars<TY>CharSet.set <COMMENT> <PROTOTY> allChars </PROTOTY> is a character set containing all the characters. </STRUCTURE> </INTERFACE>