以下为编译原理作业制作时遇到的。
1.使用正则表达式
token_strtype.Add("integer", @"^-?[1-9][0-9]*$");
token_strtype.Add("fraction", "^(-?\\d+)?\\.\\d+$");
token_strtype.Add("note", "^'''.*'''$");
token_strtype.Add("string", "^\".*\"$");
token_strtype.Add("id", "(^[a-zA-Z_]+[0-9]*)+$");
//判断的时候这样
System.Text.RegularExpressions.Regex.IsMatch(str, token_strtype["id"])
注:相关总结我写在了印象笔记中。
Dictionary<int, int> mp_id=new Dictionary<int, int>();
mp_id = (from d in mp_id orderby d.Value ascending select d).ToDictionary(pair => pair.Key, pair => pair.Value); //按value 排序