From f8c968cbaae73dd0b5226ed48c36c4ee370002eb Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 5 Sep 2017 11:19:41 -0400 Subject: [PATCH] Version 1.3.2 Fixed bugs Added new syntax to concat str="!" num=3 "Lets do this$str*3$" becomes "Lets do this!!!" you can even replace 3 for num --- parseManager/bin/Debug/choiceTest.txt | 4 +++- parseManager/bin/Debug/savedata.dat | Bin 3822 -> 0 bytes parseManager/parseManager.cs | 29 +++++++++++++++++++++----- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/parseManager/bin/Debug/choiceTest.txt b/parseManager/bin/Debug/choiceTest.txt index d312f4c..caa1820 100644 --- a/parseManager/bin/Debug/choiceTest.txt +++ b/parseManager/bin/Debug/choiceTest.txt @@ -29,7 +29,9 @@ THREAD testthread.txt snd_select=loadSong("Audio/select.mp3") playSong(bgm_song) setFancyForm("left") - LOAD() + str="!" + "Lets do this$str*3$" + LOAD() write("Name: ") name=getInput() clear() diff --git a/parseManager/bin/Debug/savedata.dat b/parseManager/bin/Debug/savedata.dat index f3c8b268bbdccc9ee03f6f4c3902c3bd75ff1b87..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 3822 zcmd^C`)ear6rQ_z&9v!0x+sdGQ4~evko1+USdC3$w=PXX5?e|Mvy=4Nj+xBVd905A zh5ivDf(Rmrh=_|)x(HiX?Sz@kcfN1#oO|y%=iX6- zqA0)7fqxv?6Le|pnw~FLOvl`oUR(Ns^zyki>G_uHEEM&EJ~uO4(u<|3bESN)652uN z$puG-foIzJTqEq-R_}t0+HPMu3r=X;DKtO1ztu`huhrKQWX>23)00k+GA_|u)A4mV znMnMN9KL-cS`j%k&?~NO%U(b(`TCM{q-XW?sudedFSI@K`TAe?aoGu`r*5nlN83eA z<(P)~*OGKe;_f(1EjpVSrjlB52b2@iQ_q|JPRn{pPEgjYnRX}}rsercLP@Bv92N`1 zxUW4Qnzj{0+}_3Fkp_Q9y>^&W`}^>pPQ%U47t<7D1D6Nn!$zL4L-S`5)ty zB2#_&uo$?0U>-rm>Zmj~ik88ZjwB}TW=tPAmq9QoSQc}1CcZmtF#k6RmHd@<8porn zSl<$T8Ko|voQo4_jSSoWQDemPGD+xL-ZAk?jbZW5;f(Pb}s~9vfw^Kr$>SfY1{4#8Y-~3 z%9;lV4Tmds^+B*#n0<)QaIE*-d>HiSOg}g~ zm&JR`JVlJ!-5wae>uj@t#P71;JPF2pXUp&h{p|O z1ppfefeHeE76fVq07|1kO#r|eEs*~J*jouCIsn36Ag=*1h5}g(fKwo2aT6CxWGDct Ss6ajfplAvtAHYdE$A1SwEZ>#@ diff --git a/parseManager/parseManager.cs b/parseManager/parseManager.cs index 459809a..7c01f2f 100644 --- a/parseManager/parseManager.cs +++ b/parseManager/parseManager.cs @@ -561,13 +561,32 @@ namespace parseManagerCS } public string parseHeader(string header) { - var results = Regex.Matches(header, @"(\$.*?\$)"); + var results = Regex.Matches(header, @"\$([\S\*]+?)\$"); int len = results.Count; string str; object temp; + object temp2; + int testnum; for (int i = 0; i < len; i++) { - str = results[i].ToString(); - if (isVar(str.Substring(1, str.Length - 2), out temp)) { + str = results[i].Groups[1].Value; + if (str.Contains("*")) { + var test = Regex.Match(str, @"(.+?)\*(.+)"); + var spart = test.Groups[1].Value; + var ipart = test.Groups[2].Value; + if(!isVar(spart, out temp)){ + + } + if (int.TryParse(ipart, out testnum)) { + str = def.repeat(this, temp.ToString(), (double)testnum); + header = header.Replace(results[i].ToString(), str); + } else if (isVar(ipart, out temp2)) { + str = def.repeat(this, temp.ToString(), (double)temp2); + header = header.Replace(results[i].ToString(), str); + } else { + PushError("When using the $varname*num$ expression num must be a number or a variable that is set to a number!"); + } + } + if (isVar(str, out temp)) { header = header.Replace(results[i].ToString(), temp.ToString()); } else { header = header.Replace(results[i].ToString(), "null"); @@ -876,7 +895,6 @@ namespace parseManagerCS _compiledlines.Add(new CMD("LINE", new object[]{ pureLine.ToString() })); } else if (assignment.ToString() != "") { var vars = GLOBALS.Split(assignment.Groups[1].ToString()); - Console.WriteLine(assignment.Groups[2]); var tabTest = assignment.Groups[2].ToString(); string[] vals = GLOBALS.Split(tabTest); //string[] vals = Regex.Split(assignment.Groups[2].ToString(), ",(?=(?:[^\"'\\[\\]]*[\"'\\[\\]][^\"'\\[\\]]*[\"'\\[\\]])*[^\"'\\[\\]]*$)"); @@ -1423,7 +1441,8 @@ public class standardDefine temp.SetParent(PM.GetENV()); return temp; } - public string repeat(parseManager PM,string str, double n){ + public string repeat(parseManager PM, string str, double n) + { return string.Concat(Enumerable.Repeat(str, (int)n)); } public string getInput(parseManager PM)