static void Main(string[] args)
        {
            AbstractPageText testPage = GeneralParser.getInstance().readPageText("TEST.txt");

            testPage.drawPage(true, true);
            System.Console.ReadLine();
        }
Beispiel #2
0
 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);
                }
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #9
0
 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"));
 }
Beispiel #11
0
 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());
 }
Beispiel #12
0
        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
                );
        }
Beispiel #13
0
        //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
                );
        }