⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syntax.sml

📁 这是我们参加06年全国开源软件的竞赛作品
💻 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 + -