@@ -10,84 +10,84 @@ class Program
1010 {
1111 static void Main ( string [ ] args )
1212 {
13- var str = @"T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
14- T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
15- T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
16- T__24=25, T__25=26, SUB=27, NUM=28, STRING=29, NULL=30, IF=31, IFERROR=32,
17- ISNUMBER=33, ISTEXT=34, ISERROR=35, ISNONTEXT=36, ISLOGICAL=37, ISEVEN=38,
18- ISODD=39, ISNULL=40, ISNULLORERROR=41, AND=42, OR=43, NOT=44, TRUE=45,
19- FALSE=46, E=47, PI=48, DEC2BIN=49, DEC2HEX=50, DEC2OCT=51, HEX2BIN=52,
20- HEX2DEC=53, HEX2OCT=54, OCT2BIN=55, OCT2DEC=56, OCT2HEX=57, BIN2OCT=58,
21- BIN2DEC=59, BIN2HEX=60, ABS=61, QUOTIENT=62, MOD=63, SIGN=64, SQRT=65,
22- TRUNC=66, INT=67, GCD=68, LCM=69, COMBIN=70, PERMUT=71, DEGREES=72, RADIANS=73,
23- COS=74, COSH=75, SIN=76, SINH=77, TAN=78, TANH=79, ACOS=80, ACOSH=81,
24- ASIN=82, ASINH=83, ATAN=84, ATANH=85, ATAN2=86, ROUND=87, ROUNDDOWN=88,
25- ROUNDUP=89, CEILING=90, FLOOR=91, EVEN=92, ODD=93, MROUND=94, RAND=95,
26- RANDBETWEEN=96, FACT=97, FACTDOUBLE=98, POWER=99, EXP=100, LN=101, LOG=102,
27- LOG10=103, MULTINOMIAL=104, PRODUCT=105, SQRTPI=106, SUMSQ=107, ASC=108,
28- JIS=109, CHAR=110, CLEAN=111, CODE=112, CONCATENATE=113, EXACT=114, FIND=115,
29- FIXED=116, LEFT=117, LEN=118, LOWER=119, MID=120, PROPER=121, REPLACE=122,
30- REPT=123, RIGHT=124, RMB=125, SEARCH=126, SUBSTITUTE=127, T=128, TEXT=129,
31- TRIM=130, UPPER=131, VALUE=132, DATEVALUE=133, TIMEVALUE=134, DATE=135,
32- TIME=136, NOW=137, TODAY=138, YEAR=139, MONTH=140, DAY=141, HOUR=142,
33- MINUTE=143, SECOND=144, WEEKDAY=145, DATEDIF=146, DAYS360=147, EDATE=148,
34- EOMONTH=149, NETWORKDAYS=150, WORKDAY=151, WEEKNUM=152, MAX=153, MEDIAN=154,
35- MIN=155, QUARTILE=156, MODE=157, LARGE=158, SMALL=159, PERCENTILE=160,
36- PERCENTRANK=161, AVERAGE=162, AVERAGEIF=163, GEOMEAN=164, HARMEAN=165,
37- COUNT=166, COUNTIF=167, SUM=168, SUMIF=169, AVEDEV=170, STDEV=171, STDEVP=172,
38- DEVSQ=173, VAR=174, VARP=175, NORMDIST=176, NORMINV=177, NORMSDIST=178,
39- NORMSINV=179, BETADIST=180, BETAINV=181, BINOMDIST=182, EXPONDIST=183,
40- FDIST=184, FINV=185, FISHER=186, FISHERINV=187, GAMMADIST=188, GAMMAINV=189,
41- GAMMALN=190, HYPGEOMDIST=191, LOGINV=192, LOGNORMDIST=193, NEGBINOMDIST=194,
42- POISSON=195, TDIST=196, TINV=197, WEIBULL=198, URLENCODE=199, URLDECODE=200,
43- HTMLENCODE=201, HTMLDECODE=202, BASE64TOTEXT=203, BASE64URLTOTEXT=204,
44- TEXTTOBASE64=205, TEXTTOBASE64URL=206, REGEX=207, REGEXREPALCE=208, ISREGEX=209,
45- GUID=210, MD5=211, SHA1=212, SHA256=213, SHA512=214, CRC32=215, HMACMD5=216,
46- HMACSHA1=217, HMACSHA256=218, HMACSHA512=219, TRIMSTART=220, TRIMEND=221,
47- INDEXOF=222, LASTINDEXOF=223, SPLIT=224, JOIN=225, SUBSTRING=226, STARTSWITH=227,
48- ENDSWITH=228, ISNULLOREMPTY=229, ISNULLORWHITESPACE=230, REMOVESTART=231,
49- REMOVEEND=232, JSON=233, VLOOKUP=234, LOOKUP=235, ARRAY=236, ADDYEARS=237,
50- ADDMONTHS=238, ADDDAYS=239, ADDHOURS=240, ADDMINUTES=241, ADDSECONDS=242,
51- TIMESTAMP=243, PARAMETER=244, PARAMETER2=245, WS=246, COMMENT=247, LINE_COMMENT=248;
52-
53- RULE_prog=0, RULE_expr=1, RULE_parameter2=2;
13+ var str = @"T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7, T__7 = 8, T__8 = 9,
14+ T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14, T__14 = 15, T__15 = 16, T__16 = 17,
15+ T__17 = 18, T__18 = 19, T__19 = 20, T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24,
16+ T__24 = 25, T__25 = 26, T__26 = 27, T__27 = 28, SUB = 29, NUM = 30, STRING = 31, NULL = 32,
17+ ERROR = 33, UNIT = 34, IF = 35, IFERROR = 36, ISNUMBER = 37, ISTEXT = 38, ISERROR = 39,
18+ ISNONTEXT = 40, ISLOGICAL = 41, ISEVEN = 42, ISODD = 43, ISNULL = 44, ISNULLORERROR = 45,
19+ AND = 46, OR = 47, NOT = 48, TRUE = 49, FALSE = 50, E = 51, PI = 52, DEC2BIN = 53, DEC2HEX = 54,
20+ DEC2OCT = 55, HEX2BIN = 56, HEX2DEC = 57, HEX2OCT = 58, OCT2BIN = 59, OCT2DEC = 60,
21+ OCT2HEX = 61, BIN2OCT = 62, BIN2DEC = 63, BIN2HEX = 64, ABS = 65, QUOTIENT = 66, MOD = 67,
22+ SIGN = 68, SQRT = 69, TRUNC = 70, INT = 71, GCD = 72, LCM = 73, COMBIN = 74, PERMUT = 75,
23+ DEGREES = 76, RADIANS = 77, COS = 78, COSH = 79, SIN = 80, SINH = 81, TAN = 82, TANH = 83,
24+ ACOS = 84, ACOSH = 85, ASIN = 86, ASINH = 87, ATAN = 88, ATANH = 89, ATAN2 = 90, ROUND = 91,
25+ ROUNDDOWN = 92, ROUNDUP = 93, CEILING = 94, FLOOR = 95, EVEN = 96, ODD = 97, MROUND = 98,
26+ RAND = 99, RANDBETWEEN = 100, FACT = 101, FACTDOUBLE = 102, POWER = 103, EXP = 104,
27+ LN = 105, LOG = 106, LOG10 = 107, MULTINOMIAL = 108, PRODUCT = 109, SQRTPI = 110,
28+ SUMSQ = 111, ASC = 112, JIS = 113, CHAR = 114, CLEAN = 115, CODE = 116, CONCATENATE = 117,
29+ EXACT = 118, FIND = 119, FIXED = 120, LEFT = 121, LEN = 122, LOWER = 123, MID = 124,
30+ PROPER = 125, REPLACE = 126, REPT = 127, RIGHT = 128, RMB = 129, SEARCH = 130, SUBSTITUTE = 131,
31+ T = 132, TEXT = 133, TRIM = 134, UPPER = 135, VALUE = 136, DATEVALUE = 137, TIMEVALUE = 138,
32+ DATE = 139, TIME = 140, NOW = 141, TODAY = 142, YEAR = 143, MONTH = 144, DAY = 145,
33+ HOUR = 146, MINUTE = 147, SECOND = 148, WEEKDAY = 149, DATEDIF = 150, DAYS360 = 151,
34+ EDATE = 152, EOMONTH = 153, NETWORKDAYS = 154, WORKDAY = 155, WEEKNUM = 156, MAX = 157,
35+ MEDIAN = 158, MIN = 159, QUARTILE = 160, MODE = 161, LARGE = 162, SMALL = 163, PERCENTILE = 164,
36+ PERCENTRANK = 165, AVERAGE = 166, AVERAGEIF = 167, GEOMEAN = 168, HARMEAN = 169,
37+ COUNT = 170, COUNTIF = 171, SUM = 172, SUMIF = 173, AVEDEV = 174, STDEV = 175, STDEVP = 176,
38+ COVAR = 177, COVARIANCES = 178, DEVSQ = 179, VAR = 180, VARP = 181, NORMDIST = 182,
39+ NORMINV = 183, NORMSDIST = 184, NORMSINV = 185, BETADIST = 186, BETAINV = 187, BINOMDIST = 188,
40+ EXPONDIST = 189, FDIST = 190, FINV = 191, FISHER = 192, FISHERINV = 193, GAMMADIST = 194,
41+ GAMMAINV = 195, GAMMALN = 196, HYPGEOMDIST = 197, LOGINV = 198, LOGNORMDIST = 199,
42+ NEGBINOMDIST = 200, POISSON = 201, TDIST = 202, TINV = 203, WEIBULL = 204, URLENCODE = 205,
43+ URLDECODE = 206, HTMLENCODE = 207, HTMLDECODE = 208, BASE64TOTEXT = 209, BASE64URLTOTEXT = 210,
44+ TEXTTOBASE64 = 211, TEXTTOBASE64URL = 212, REGEX = 213, REGEXREPALCE = 214, ISREGEX = 215,
45+ GUID = 216, MD5 = 217, SHA1 = 218, SHA256 = 219, SHA512 = 220, CRC32 = 221, HMACMD5 = 222,
46+ HMACSHA1 = 223, HMACSHA256 = 224, HMACSHA512 = 225, TRIMSTART = 226, TRIMEND = 227,
47+ INDEXOF = 228, LASTINDEXOF = 229, SPLIT = 230, JOIN = 231, SUBSTRING = 232, STARTSWITH = 233,
48+ ENDSWITH = 234, ISNULLOREMPTY = 235, ISNULLORWHITESPACE = 236, REMOVESTART = 237,
49+ REMOVEEND = 238, JSON = 239, VLOOKUP = 240, ARRAY = 241, ALGORITHMVERSION = 242,
50+ ADDYEARS = 243, ADDMONTHS = 244, ADDDAYS = 245, ADDHOURS = 246, ADDMINUTES = 247,
51+ ADDSECONDS = 248, TIMESTAMP = 249, HAS = 250, HASVALUE = 251, PARAM = 252, PARAMETER = 253,
52+ WS = 254, COMMENT = 255, LINE_COMMENT = 256;
53+
54+ RULE_prog = 0, RULE_expr = 1, RULE_num = 2, RULE_unit = 3, RULE_arrayJson = 4,
55+ RULE_parameter2 = 5;
5456" ;
55- var array = str . Split ( " ,\r \n \t ;" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) ;
57+ var array = str . Split ( ",\r \n \t ;" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) ;
5658 Dictionary < string , string > dict = new Dictionary < string , string > ( ) ;
59+ dict [ "Eof" ] = "-1" ;
5760 foreach ( var item in array ) {
5861 var sp = item . Split ( '=' ) ;
5962 dict [ sp [ 0 ] . Trim ( ) ] = sp [ 1 ] . Trim ( ) ;
6063 }
6164
6265 var filePath = Path . GetFullPath ( @"..\..\..\..\..\g4\bin\mathParser.cs" ) ;
63- //var filePath = Path.GetFullPath(@"..\..\..\..\..\..\csharp\ToolGood.Algorithm2\math\mathParser.cs");
6466 var csText = File . ReadAllText ( filePath ) ;
6567
6668
6769
6870 csText = csText . Replace ( "[System.CLSCompliant(false)]" , "" ) ;
69- csText = csText . Replace ( "[System.CodeDom.Compiler.GeneratedCode(\" ANTLR\" , \" 4.9.3\" )]" , "" ) ;
70- csText = csText . Replace ( "[System.CodeDom.Compiler.GeneratedCode(\" ANTLR\" , \" 4.11.1\" )]" , "" ) ;
71- csText = csText . Replace ( "[System.Diagnostics.DebuggerNonUserCode]" , "" ) ;
71+ csText = csText . Replace ( "[System.CodeDom.Compiler.GeneratedCode(\" ANTLR\" , \" 4.13.2\" )]" , "" ) ;
7272 csText = csText . Replace ( "[RuleVersion(0)]" , "" ) ;
7373 csText = csText . Replace ( "[NotNull]" , "" ) ;
74- csText = csText . Replace ( " public ITerminalNode" , "//public ITerminalNode" ) ;
74+ csText = csText . Replace ( "[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode" , "//[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode" ) ;
7575 csText = csText . Replace ( "else return visitor.VisitChildren(this);" , "" ) ;
7676 csText = csText . Replace ( "if (typedVisitor != null) " , "" ) ;
7777
7878 csText = Regex . Replace ( csText , "if \\ (!\\ (Precpred.*\\ r\\ n\\ t*" , "" ) ;
7979 csText = Regex . Replace ( csText , "State = \\ d+;\\ r\\ n[ \\ t]+State =" , "State =" ) ;
8080 csText = Regex . Replace ( csText , "return GetRuleContext<ExprContext>\\ (i\\ );\\ r\\ n" , "return GetRuleContext<ExprContext>(i);" ) ;
81- csText = Regex . Replace ( csText , " public ExprContext expr\\ (int i\\ ) \\ { \\ r \\ n", "//public ExprContext expr(int i) {" ) ;
81+ csText = Regex . Replace ( csText , @"\[System.Diagnostics.DebuggerNonUserCode\] public ExprContext expr\(int i\) \{\r\ n", "// [System.Diagnostics.DebuggerNonUserCode] public ExprContext expr(int i) {" ) ;
8282
8383 csText = Regex . Replace ( csText , @"\bState = (\d+);\r\n[ \t]*Match\(" , "Match(" ) ;
8484 csText = Regex . Replace ( csText , @"\bState = (\d+);\r\n[ \t]*ErrorHandler" , "ErrorHandler" ) ;
8585 csText = Regex . Replace ( csText , @"public partial class mathParser" , "partial class mathParser" ) ;
86+ csText = Regex . Replace ( csText , @"public partial class" , "internal partial class" ) ;
8687
8788
8889
89-
90- var list = dict . Keys . ToList ( ) . OrderByDescending ( q => q . Length ) . ToList ( ) ;
90+ var list = dict . Keys . ToList ( ) . OrderByDescending ( q => q . Length ) . ToList ( ) ;
9191
9292 foreach ( var item in list ) {
9393 var value = dict [ item ] ;
@@ -114,12 +114,11 @@ static void Main(string[] args)
114114 //mathParser.STRING
115115 //_la==T__16
116116 }
117- File . WriteAllText ( "mathParser.cs" , csText ) ;
118-
119-
120-
121117
118+ csText = csText . Replace ( "//[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARAMETER()" , "[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARAMETER()" ) ;
122119
120+ csText = "namespace ToolGood.Algorithm.math\r \n {" + csText + "\r \n }" ;
121+ File . WriteAllText ( "mathParser.cs" , csText ) ;
123122 }
124123 }
125124
0 commit comments