public static AsicStandardStatsObject _Convert(string html, ParsingObject parsingObject)
        {
            AsicStandardStatsObject LasicColumn = new AsicStandardStatsObject();



            List <string> listTableStats = ParsingTable.Pars(html, parsingObject.MainNameTable,
                                                             parsingObject.MainTableParsingPattern);

            List <string> summaryTable = ParsingTable.Pars(html, parsingObject.AdditionalNameTable,
                                                           parsingObject.AdditionalTableParsingPattern);



            if (IsOld(listTableStats[1]))
            {
                LasicColumn = GetOldData(LasicColumn, listTableStats);
            }
            else
            {
                LasicColumn = GetNewData(LasicColumn, listTableStats);
            }



            LasicColumn.HashrateAVG = listTableStats[listTableStats.Count - 1];
            LasicColumn.DateTime    = DateTime.Now.ToString();
            LasicColumn.ElapsedTime = summaryTable[8 + 0];

            return(LasicColumn);
        }
Exemplo n.º 2
0
        public void stockDataImplementation()
        {
            string stockMarket = "https://www.marketwatch.com/investing/index/comp?mod=us-markets";

            HtmlWeb      stockWebsite = new HtmlWeb();
            HtmlDocument stockDoc     = stockWebsite.Load(stockMarket);

            HtmlNodeCollection stockTable = stockDoc.DocumentNode.SelectNodes("/html/body/div[1]/div[5]/div[3]/div[1]/div/table/tbody");

            List <ParsingTable> ListOfStocks = new List <ParsingTable>();

            foreach (HtmlNode stock in stockTable)
            {
                DateTime stockRecord   = DateTime.Now;
                var      company       = stock.SelectSingleNode("/html/body/div[1]/div[5]/div[3]/div[1]/div/table/tbody/tr[1]/td[1]").InnerText;
                var      lastSale      = stock.SelectSingleNode("/html/body/div[1]/div[5]/div[3]/div[1]/div/table/tbody/tr[1]/td[2]").InnerText;
                var      change        = stock.SelectSingleNode("/html/body/div[1]/div[5]/div[3]/div[1]/div/table/tbody/tr[1]/td[3]").InnerText;
                var      percentChange = stock.SelectSingleNode("/html/body/div[1]/div[5]/div[3]/div[1]/div/table/tbody/tr[1]/td[4]").InnerText;

                ParsingTable Stocks = new ParsingTable();
                Stocks.StockRecord   = stockRecord;
                Stocks.Company       = company;
                Stocks.LastSale      = lastSale;
                Stocks.Change        = change;
                Stocks.PercentChange = percentChange;
                ListOfStocks.Add(Stocks);

                InsertDataToTable(Stocks);
            }
        }
        public void InsertDataToTable(ParsingTable Stocks)
        {
            using (SqlConnection db = new SqlConnection(connectionString))
            {
                string insert = "INSERT INTO dbo.ParsingTable ( StockRecord, Company, LastSale, Change, PercentChange) VALUES (@stockRecord, @company, @lastSale, @change, @percentChange)";
                {
                    db.Open();
                    Console.WriteLine("Database has been opened");
                    Console.WriteLine();

                    using (SqlCommand dataToTable = new SqlCommand(insert, db))
                    {
                        dataToTable.Parameters.AddWithValue("@stockRecord", Stocks.StockRecord);
                        dataToTable.Parameters.AddWithValue("@company", Stocks.Company);
                        dataToTable.Parameters.AddWithValue("@lastSale", Stocks.LastSale);
                        dataToTable.Parameters.AddWithValue("@change", Stocks.Change);
                        dataToTable.Parameters.AddWithValue("@percentChange", Stocks.PercentChange);

                        dataToTable.ExecuteNonQuery();


                        dataToTable.ExecuteNonQuery();
                    }

                    db.Close();
                    Console.WriteLine("Database table has been inserted with data");
                    Console.WriteLine();
                    Console.WriteLine("Database has been shut down");
                }
            }
        }
Exemplo n.º 4
0
 public ParserDefinition(Grammar grammar, Set <FirstSet> firstSets, Set <FollowSet> followSets, StateVector states, ParsingTable table)
 {
     this.Grammar    = grammar;
     this.FirstSets  = firstSets;
     this.FollowSets = followSets;
     this.States     = states;
     this.Table      = table;
 }
Exemplo n.º 5
0
        protected override ParsingTable ComputeParseTable()
        {
            var table = new ParsingTable {
                StartState = States.StartState.Index
            };

            foreach (var state in States)
            {
                foreach (var sym in Symbols)
                {
                    if (sym.IsTerminal)
                    {
                        var key = (state.Index, sym.Terminal);

                        foreach (var item in state)
                        {
                            if (item.Marker < item.Length && item.Rule.Symbols[item.Marker].Equals(sym))
                            {
                                if (GotoSymbol.TryGetValue((state.Index, sym), out var @goto))
                                {
                                    table.Action[key] = new Action(Shift, @goto);
                                }
                            }
                            else if (item.Length == item.Marker)
                            {
                                if (item.Rule.IsAccepting)
                                {
                                    if (sym.Terminal.CompareTo(Eof) == 0)
                                    {
                                        table.Action[key] = new Action(Accept);
                                    }
                                }
                                else if (item.Lookaheads.Contains(sym.Terminal) &&
                                         item.Rule.Production.Lhs.CompareTo(Init) != 0)
                                {
                                    if (table.Action.TryGetValue(key, out var action))
                                    {
                                        // Reduce-reduce conflict.
                                        // Add this rule to the list of rules for this action.
                                        // A GLR parser will try both rules in parallel.
                                        action.Numbers.Add(item.Rule.Index);
                                    }
                                    else
                                    {
                                        table.Action[key] = new Action(Reduce, item.Rule.Index);
                                    }
                                }

                                // else don't add, will be error by default
                            }
                        }
                    }
                    else // Nonterminal
                    {
                        if (GotoSymbol.TryGetValue((state.Index, sym), out var @goto))
                        {
                            table.Goto[(state.Index, sym.Nonterminal)] = @goto;
Exemplo n.º 6
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            ParsingTable parsingTable = await db.ParsingTables.FindAsync(id);

            db.ParsingTables.Remove(parsingTable);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Exemplo n.º 7
0
        public void CreateDelimitingRule(string rule, string delimiters)
        {
            // add rule to parsing table
            ParsingTable.AddParsingTableRow(rule, true, true, delimiters);

            // add rule to mapping table
            foreach (string field in FieldList)
            {
                MappingTable.AddMappingTableRow(rule, field, -1, null, "en-US");
            }
        }
Exemplo n.º 8
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,StockRecord,Symbol,Company,LastSale,Change,PChg,VolumeAvg")] ParsingTable parsingTable)
        {
            if (ModelState.IsValid)
            {
                db.Entry(parsingTable).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(parsingTable));
        }
Exemplo n.º 9
0
        public static ParsingTable Create()
        {
            var parsingTable = new ParsingTable(Symbol.Program, Symbol.End);

            parsingTable.AddRule(R1, Symbol.Program, Symbol.Identifier);
            parsingTable.AddRule(R2, Symbol.DefTail, Symbol.Identifier);
            parsingTable.AddRule(R3, Symbol.DefTail, Symbol.End);
            parsingTable.AddRule(R4, Symbol.Def, Symbol.Identifier);
            parsingTable.AddRule(R5, Symbol.Formals, Symbol.CloseBracket);
            parsingTable.AddRule(R6, Symbol.Formals, Symbol.Identifier);
            parsingTable.AddRule(R7, Symbol.NonEmptyFormals, Symbol.Identifier);
            parsingTable.AddRule(R8, Symbol.FormalTail, Symbol.Comma);
            parsingTable.AddRule(R9, Symbol.FormalTail, Symbol.CloseBracket);
            parsingTable.AddRule(R10, Symbol.Formal, Symbol.Identifier);
            parsingTable.AddRule(R11, Symbol.Body, Symbol.PrintKeyword);
            parsingTable.AddRule(R12, Symbol.Body, Symbol.If, Symbol.Not, Symbol.Identifier, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse, Symbol.Minus, Symbol.OpenBracket);
            parsingTable.AddRule(R13, Symbol.Type, Symbol.IntegerType);
            parsingTable.AddRule(R14, Symbol.Type, Symbol.BooleanType);
            parsingTable.AddRule(R15, Symbol.Expr, Symbol.If, Symbol.Not, Symbol.Identifier, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse, Symbol.Minus, Symbol.OpenBracket);
            parsingTable.AddRule(R16, Symbol.SimpleExprTail, Symbol.LessThan);
            parsingTable.AddRule(R17, Symbol.SimpleExprTail, Symbol.Equality);
            parsingTable.AddRule(R18, Symbol.SimpleExprTail, Symbol.Identifier, Symbol.End, Symbol.Then, Symbol.Else, Symbol.CloseBracket, Symbol.And, Symbol.Times, Symbol.Divide, Symbol.Or, Symbol.Plus, Symbol.Minus, Symbol.Comma);
            parsingTable.AddRule(R19, Symbol.SimpleExpr, Symbol.If, Symbol.Not, Symbol.Identifier, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse, Symbol.Minus, Symbol.OpenBracket);
            parsingTable.AddRule(R20, Symbol.TermTail, Symbol.Or);
            parsingTable.AddRule(R21, Symbol.TermTail, Symbol.Plus);
            parsingTable.AddRule(R22, Symbol.TermTail, Symbol.Minus);
            parsingTable.AddRule(R23, Symbol.TermTail, Symbol.Identifier, Symbol.End, Symbol.Then, Symbol.Else, Symbol.CloseBracket, Symbol.And, Symbol.Times, Symbol.Divide, Symbol.LessThan, Symbol.Equality, Symbol.Comma);
            parsingTable.AddRule(R24, Symbol.Term, Symbol.If, Symbol.Not, Symbol.Identifier, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse, Symbol.Minus, Symbol.OpenBracket);
            parsingTable.AddRule(R25, Symbol.FactorTail, Symbol.And);
            parsingTable.AddRule(R26, Symbol.FactorTail, Symbol.Times);
            parsingTable.AddRule(R27, Symbol.FactorTail, Symbol.Divide);
            parsingTable.AddRule(R28, Symbol.FactorTail, Symbol.Identifier, Symbol.End, Symbol.Then, Symbol.Else, Symbol.CloseBracket, Symbol.Or, Symbol.Plus, Symbol.Minus, Symbol.LessThan, Symbol.Equality, Symbol.Comma);
            parsingTable.AddRule(R29, Symbol.Factor, Symbol.If);
            parsingTable.AddRule(R30, Symbol.Factor, Symbol.Not);
            parsingTable.AddRule(R31, Symbol.Factor, Symbol.Identifier);
            parsingTable.AddRule(R32, Symbol.Factor, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse);
            parsingTable.AddRule(R33, Symbol.Factor, Symbol.Minus);
            parsingTable.AddRule(R34, Symbol.Factor, Symbol.OpenBracket);
            parsingTable.AddRule(R35, Symbol.Func, Symbol.Identifier);
            parsingTable.AddRule(R36, Symbol.FuncTail, Symbol.OpenBracket);
            parsingTable.AddRule(R37, Symbol.FuncTail, Symbol.Identifier, Symbol.End, Symbol.Then, Symbol.Else, Symbol.CloseBracket, Symbol.And, Symbol.Times, Symbol.Divide, Symbol.Or, Symbol.Plus, Symbol.Minus, Symbol.LessThan, Symbol.Equality, Symbol.Comma);
            parsingTable.AddRule(R38, Symbol.Actuals, Symbol.CloseBracket);
            parsingTable.AddRule(R39, Symbol.Actuals, Symbol.If, Symbol.Not, Symbol.Identifier, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse, Symbol.Minus, Symbol.OpenBracket);
            parsingTable.AddRule(R40, Symbol.NonEmptyActuals, Symbol.If, Symbol.Not, Symbol.Identifier, Symbol.IntegerLiteral, Symbol.BooleanTrue, Symbol.BooleanFalse, Symbol.Minus, Symbol.OpenBracket);
            parsingTable.AddRule(R41, Symbol.ActualsTail, Symbol.Comma);
            parsingTable.AddRule(R42, Symbol.ActualsTail, Symbol.CloseBracket);
            parsingTable.AddRule(R43, Symbol.Literal, Symbol.IntegerLiteral);
            parsingTable.AddRule(R44, Symbol.Literal, Symbol.BooleanTrue);
            parsingTable.AddRule(R45, Symbol.Literal, Symbol.BooleanFalse);
            parsingTable.AddRule(R46, Symbol.Print, Symbol.PrintKeyword);

            return(parsingTable);
        }
Exemplo n.º 10
0
        // GET: ParsingTable/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ParsingTable parsingTable = await db.ParsingTables.FindAsync(id);

            if (parsingTable == null)
            {
                return(HttpNotFound());
            }
            return(View(parsingTable));
        }
Exemplo n.º 11
0
        public static ParsingTable Create()
        {
            var parsingTable = new ParsingTable(Symbol.Expr, Symbol.End);

            parsingTable.AddRule(R1, Symbol.Expr, Symbol.OpenBracket, Symbol.Identifier);
            parsingTable.AddRule(R2, Symbol.SimpleExprTail, Symbol.Plus);
            parsingTable.AddRule(R3, Symbol.SimpleExprTail, Symbol.End, Symbol.CloseBracket);
            parsingTable.AddRule(R4, Symbol.Term, Symbol.OpenBracket, Symbol.Identifier);
            parsingTable.AddRule(R5, Symbol.TermTail, Symbol.Times);
            parsingTable.AddRule(R6, Symbol.TermTail, Symbol.Plus, Symbol.End, Symbol.CloseBracket);
            parsingTable.AddRule(R7, Symbol.Factor, Symbol.OpenBracket);
            parsingTable.AddRule(R8, Symbol.Factor, Symbol.Identifier);

            return(parsingTable);
        }
Exemplo n.º 12
0
        public void DeleteDelimitingRule(string rule)
        {
            DataRow row1 = ParsingTable.FindByRule(rule);

            if (row1 != null)
            {
                row1.Delete();
            }
            ParsingTable.AcceptChanges();

            DataRow[] rows = MappingTable.Select("Rule = '" + rule + "'");
            foreach (DataRow row2 in rows)
            {
                row2.Delete();
            }
            MappingTable.AcceptChanges();
        }
Exemplo n.º 13
0
        public static ParsingTable Create()
        {
            var parsingTable = new ParsingTable(Symbol.Program, Symbol.End);

            parsingTable.AddRule(R1, Symbol.Program, Symbol.Identifier);
            parsingTable.AddRule(R2, Symbol.DefTail, Symbol.Identifier);
            parsingTable.AddRule(R3, Symbol.DefTail, Symbol.End);
            parsingTable.AddRule(R4, Symbol.Def, Symbol.Identifier);
            parsingTable.AddRule(R5, Symbol.Formals, Symbol.CloseBracket);
            parsingTable.AddRule(R6, Symbol.Formals, Symbol.Identifier);
            parsingTable.AddRule(R7, Symbol.NonEmptyFormals, Symbol.Identifier);
            parsingTable.AddRule(R8, Symbol.FormalTail, Symbol.Comma);
            parsingTable.AddRule(R9, Symbol.FormalTail, Symbol.CloseBracket);
            parsingTable.AddRule(R10, Symbol.Formal, Symbol.Identifier);
            parsingTable.AddRule(R11, Symbol.Type, Symbol.IntegerType);
            parsingTable.AddRule(R12, Symbol.Type, Symbol.BooleanType);

            return(parsingTable);
        }
        public void Parsing()
        {
            string nasDaq = "https://www.nasdaq.com/markets/most-active.aspx";

            HtmlWeb      nasDaqWeb = new HtmlWeb();
            HtmlDocument newDoc    = nasDaqWeb.Load(nasDaq);

            HtmlNodeCollection stockTable = newDoc.DocumentNode.SelectNodes("//*[@id=\"_active\"]/table/tr");

            List <ParsingTable> ListOfStocks = new List <ParsingTable>();

            foreach (var stock in stockTable)
            {
                DateTime stockRecord = DateTime.Now;

                string symbol     = stock.SelectSingleNode("td[1]/h3/a").InnerText;
                string company    = stock.SelectSingleNode("td[2]/b/a").InnerText;
                string lastSale   = stock.SelectSingleNode("td[4]").InnerText;
                string charChange = stock.SelectSingleNode("td[5]/span").InnerText.Replace("&nbsp;", "")
                                    .Replace(" ", "").Replace("&#9650;", " ").Replace("&#9660;", " ");

                int trimChange         = 4;
                int trimPercent_Change = 5;

                string change    = charChange.Substring(0, trimChange).Trim();
                string pChg      = charChange.Substring(trimPercent_Change).Trim();
                string volumeAvg = stock.SelectSingleNode("td[6]").InnerText;

                ParsingTable Stocks = new ParsingTable();
                Stocks.StockRecord = stockRecord;
                Stocks.Symbol      = symbol;
                Stocks.Company     = company;
                Stocks.LastSale    = lastSale;
                Stocks.Change      = change;
                Stocks.PChg        = pChg;
                Stocks.VolumeAvg   = volumeAvg;

                ListOfStocks.Add(Stocks);

                InsertDataToTable(Stocks);
            }
        }
Exemplo n.º 15
0
 private static string ToString(ParsingTable table, List <Terminal> terminals, List <NonTerminal> nonTerminals) =>
 new TableFormat <int, Symbol>()
 .AddHeader((string.Empty, 1), ("SHIFT/REDUCE", terminals.Count), ("GOTO", nonTerminals.Count))
Exemplo n.º 16
0
 public static string ToString(ParsingTable table, List <RuleDefinition> rules) =>
 ToString(table, SortedTerminals(rules).ToList(), SortedNonTerminals(rules).ToList());