?? syntax.sml
字號:
(* syntax.sml * * COPYRIGHT (c) 1995 AT&T Bell Laboratories. * * This is the abstract syntax tree used to represent regular expressions. * It serves as the glue between different front-ends (implementing * different RE specification languages), and different back-ends (implementing * different compilation/searching algorithms). *)structure RegExpSyntax : REGEXP_SYNTAX = struct exception CannotParse exception CannotCompile structure CharSet = ListSetFn (struct type ord_key = char val compare = Char.compare end) datatype syntax = Group of syntax | Alt of syntax list | Concat of syntax list | Interval of (syntax * int * int option) | Option of syntax (* == Interval(re, 0, SOME 1) *) | Star of syntax (* == Interval(re, 0, NONE) *) | Plus of syntax (* == Interval(re, 1, NONE) *) | MatchSet of CharSet.set | NonmatchSet of CharSet.set | Char of char | Begin | End fun addRange (s,minC,maxC) = CharSet.addList (s,List.tabulate (ord(maxC)-ord(minC)+1,fn v => chr (v+ord(minC)))) val allChars = addRange (CharSet.empty, Char.minChar, Char.maxChar) end;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -