static void Main(string[] args) { AbstractPageText testPage = GeneralParser.getInstance().readPageText("TEST.txt"); testPage.drawPage(true, true); System.Console.ReadLine(); }
public void Init() { this.generalParser = new GeneralParser(); using (var docStream = AssemblyResourceHelper.GetResourceStream(this, "GeneralParserTest.xml")) { this.doc = XDocument.Load(docStream); } }
public void BatchDeterTriFun(object sender) { var fileDialog = new OpenFileDialog(); fileDialog.DefaultExt = ".csv"; fileDialog.Filter = "csv file|*.csv"; if (fileDialog.ShowDialog() == true) { CountControl = UIHelper.FindChild <CaseCountControl>(Application.Current.MainWindow, "CaseCountControl"); DefactPercentControl = UIHelper.FindChild <DefactPercentControl>(Application.Current.MainWindow, "DefactPercentControl"); var dataList = FileUtils <TriangleMapper> .ReadDateList(fileDialog.FileName); if (null != dataList) { CountControl.SetTotal(dataList.Count); int trueCnt = 0, falseCnt = 0; foreach (var csvMapper in dataList) { var parseResult = GeneralParser.ParseTriangle(csvMapper.A, csvMapper.B, csvMapper.C, GetParseTriangleStr); csvMapper.Result = parseResult; if (parseResult.Equals("不能构成三角形.")) { csvMapper.Exception = "不能构成三角形."; } if (parseResult.Equals(csvMapper.Expected)) { csvMapper.IsCorrect = "true"; trueCnt++; } else { csvMapper.IsCorrect = "false"; falseCnt++; } } CountControl.SetPassed(trueCnt); CountControl.SetFailed(falseCnt); //WriteResult(dataList); FileUtils <TriangleMapper> .WriteResult(dataList, "rTriangle.csv"); DefactPercentControl.SetValues(trueCnt, falseCnt); } } }
private void DoBatchParse(object parameter) { var fileDialog = new OpenFileDialog(); fileDialog.DefaultExt = ".csv"; fileDialog.Filter = "csv file|*.csv"; if (fileDialog.ShowDialog() == true) { CountControl = UIHelper.FindChild <CaseCountControl>(Application.Current.MainWindow, "CaseCountControl"); DefactPercentControl = UIHelper.FindChild <DefactPercentControl>(Application.Current.MainWindow, "DefactPercentControl"); var dataList = FileUtils <DateMapper> .ReadDateList(fileDialog.FileName); if (null != dataList) { CountControl.SetTotal(dataList.Count); int trueCnt = 0, falseCnt = 0; foreach (var csvMapper in dataList) { var parseResult = GeneralParser.ParseDate(csvMapper.DateStr); if (parseResult[0].Equals(true)) { csvMapper.Result = parseResult[1] as string; } else { csvMapper.Result = "Parse Error"; csvMapper.Exception = parseResult[1] as string; } if (csvMapper.Result.Equals(csvMapper.Expected)) { trueCnt++; } else { falseCnt++; } } CountControl.SetPassed(trueCnt); CountControl.SetFailed(falseCnt); //WriteResult(dataList); FileUtils <DateMapper> .WriteResult(dataList, "rNextDate.csv"); DefactPercentControl.SetValues(trueCnt, falseCnt); } } }
private ShopData ParseShop() { var parser = new GeneralParser( //_context.DownloadInfo.FilePath, //_context.DownloadInfo.NameLatin, _context.DownloadInfo, _context, _settings.EnableExtendedStatistics); var shopData = parser.Parse(); SetProgress(20); AddMessage("Parsing complete"); return(shopData); }
public static Executor GetInstance(string databaseName = Constants.FILE_NAME) { if (_instance == null) { lock (_lockObject) { if (databaseName != null) { if (!File.Exists(databaseName)) { using (File.Create(databaseName)); } } var updateParser = new UpdateParser(); var stringParser = new StringParser(); var reader = new Reader(); var writer = new Writer(reader); var lockManager = new LockManager(writer, reader); var schemaFetcher = new SchemaFetcher(reader); var selectParser = new SelectParser(); var insertParser = new InsertParser(schemaFetcher); var generalParser = new GeneralParser(); var createParser = new CreateParser(); var predicateParser = new PredicateParser(); var interpreter = new Interpreter( selectParser, insertParser, updateParser, schemaFetcher, generalParser, createParser, stringParser, lockManager, reader, predicateParser); _instance = new Executor(interpreter); } } return(_instance); }
public void GetOuterMostParantheses() { //arrange var genParser = new GeneralParser(); string dml = @"create table houses( Address varchar(100), Price decimal )"; string expected = @" Address varchar(100), Price decimal "; //act string statement = genParser.GetOuterMostParantheses(dml).Statement; //assert Assert.AreEqual(expected, statement); }
public BeatmapInfo(string filename) { // Load, and parse. if (File.Exists(filename)) { if (filename.Split('.')[filename.Split('.').Length - 1] != "osu") { throw new InvalidBeatmapException("Unknown file format."); } Gen = GeneralParser.Parse(filename); Edit = EditorParser.Parse(filename); Meta = MetadataParser.Parse(filename); Diff = DifficultyParser.Parse(filename); Timing = TimingPointParser.Parse(filename); Color = ColourParser.Parse(filename); } else { throw new FileNotFoundException(); } }
public Interpreter(SelectParser selectParser, InsertParser insertParser, UpdateParser updateParser, SchemaFetcher schemaFetcher, GeneralParser generalParser, CreateParser createParser, StringParser stringParser, LockManager lockManager, Reader reader, PredicateParser predicateParser) { _selectParser = selectParser; _insertParser = insertParser; _updateParser = updateParser; _schemaFetcher = schemaFetcher; _generalParser = generalParser; _createParser = createParser; _stringParser = stringParser; _lockManager = lockManager; _reader = reader; _predicateParser = predicateParser; }
public GeneralParserTests() { parser = new GeneralParser(new LoggerFactory().CreateLogger("test")); }
public void MathExpressions() { GeneralParser TempParser = new GeneralParser(); INode Node = TempParser.Parse(new FileInfo(@"./TestingData/Application1.txt").Read()); Assert.Equal("x = 1 + 2\ny = \"ASDF\" + (String)2\nz = 4 * 23.51\na = 7512 + (Number)\"1234\"", Node.ToString()); }
public SkryptEngine(string code = "") { _code = code; Tokenizer = new Tokenizer(this); TokenProcessor = new TokenProcessor(this); StatementParser = new StatementParser(this); ExpressionParser = new ExpressionParser(this); GeneralParser = new GeneralParser(this); MethodParser = new FunctionParser(this); ModifierChecker = new ModifierChecker(this); ClassParser = new ClassParser(this); Analizer = new Analizer(this); Executor = new Executor(this); var systemObject = ObjectGenerator.MakeObjectFromClass(typeof(Library.Native.System), this); GlobalScope.SetVariable(systemObject.Name, systemObject, Modifier.Const); CurrentScope = GlobalScope; // Tokens that are found using a token rule with type defined as 'null' won't get added to the token list. // This means you can ignore certain characters, like whitespace in this case, that way. Tokenizer.AddRule( new Regex(@"\s"), TokenTypes.None ); Tokenizer.AddRule( new Regex(@"\d+(\.\d+)?([eE][-+]?\d+)?"), TokenTypes.NumericLiteral ); Tokenizer.AddRule( new Regex(@"0x([A-Fa-f\d])*"), TokenTypes.HexadecimalLiteral ); Tokenizer.AddRule( new Regex(@"0b([01])*"), TokenTypes.BinaryLiteral ); Tokenizer.AddRule( new Regex(@"[_a-zA-Z]+[_a-zA-Z0-9]*"), TokenTypes.Identifier ); Tokenizer.AddRule( new Regex(@"include|const|using|public|private|strong|in|class|fn|if|elseif|else|while"), TokenTypes.Keyword ); Tokenizer.AddRule( new Regex("true|false"), TokenTypes.BooleanLiteral ); Tokenizer.AddRule( new Regex("null"), TokenTypes.NullLiteral ); Tokenizer.AddRule( new Regex(@"[;]"), TokenTypes.EndOfExpression ); Tokenizer.AddRule( new Regex( @"(import)|(return)|(continue)|(break)|(&&)|(\+=)|(\-=)|(\/=)|(\*=)|(\%=)|(\^=)|(\&=)|(\|=)|(\|\|\|=)|(\|\|\|)|(\|\|)|(=>)|(==)|(!=)|(>=)|(<=)|(<<)|(>>>)|(>>)|(\+\+)|(--)|[~=<>+\-*/%^&|!\[\]\(\)\.\,{}\?\:]"), TokenTypes.Punctuator ); // Single line comment Tokenizer.AddRule( new Regex(@"\/\/.*\n?"), TokenTypes.None ); // Multi line comment Tokenizer.AddRule( new Regex(@"\/\*.*?\*\/", RegexOptions.Singleline), TokenTypes.None ); Tokenizer.AddRule( new Regex(@""".*?(?<!\\)""", RegexOptions.Singleline), TokenTypes.StringLiteral ); }
//List<SkryptClass> Classes = new List<SkryptClass>(); public SkryptEngine() { tokenizer = new Tokenizer(this); statementParser = new StatementParser(this); expressionParser = new ExpressionParser(this); generalParser = new GeneralParser(this); methodParser = new MethodParser(this); analizer = new Analizer(this); executor = new Executor(this); standardMethods = new StandardMethods(this); standardMethods.AddMethodsToEngine(); //Constants["_PI"] = new Numeric(Math.PI); //Constants["_E"] = new Numeric(Math.E); SkryptObject SystemObject = ObjectGenerator.MakeObjectFromClass(typeof(Library.Native.System)); foreach (SkryptProperty property in SystemObject.Properties) { GlobalScope.AddVariable(property.Name, property.Value, true); } // Tokens that are found using a token rule with type defined as 'null' won't get added to the token list. // This means you can ignore certain characters, like whitespace in this case, that way. tokenizer.AddRule( new Regex(@"\s"), TokenTypes.None ); tokenizer.AddRule( new Regex(@"\d+(\.\d+)?"), TokenTypes.NumericLiteral ); tokenizer.AddRule( new Regex(@"[_a-zA-Z]+[_a-zA-Z0-9]*"), TokenTypes.Identifier ); tokenizer.AddRule( new Regex(@"class|func|if|elseif|else|while"), TokenTypes.Keyword ); tokenizer.AddRule( new Regex("true|false"), TokenTypes.BooleanLiteral ); tokenizer.AddRule( new Regex("null"), TokenTypes.NullLiteral ); tokenizer.AddRule( new Regex(@"[;]"), TokenTypes.EndOfExpression ); tokenizer.AddRule( new Regex(@"(return)|(&&)|(\|\|)|(\|\|\|)|(==)|(!=)|(>=)|(<=)|(<<)|(>>)|(>>>)|(\+\+)|(--)|[~=:<>+\-*/%^&|!\[\]\(\)\.\,{}]"), TokenTypes.Punctuator ); tokenizer.AddRule( new Regex(@""".*?(?<!\\)"""), TokenTypes.StringLiteral ); // Multi line comment tokenizer.AddRule( new Regex(@"\/\*(.|\n)*\*\/"), TokenTypes.None ); // Single line comment tokenizer.AddRule( new Regex(@"\/\/.*\n"), TokenTypes.None ); }