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); }
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"); } } }
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; }
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;
public async Task <ActionResult> DeleteConfirmed(int id) { ParsingTable parsingTable = await db.ParsingTables.FindAsync(id); db.ParsingTables.Remove(parsingTable); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
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"); } }
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)); }
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); }
// 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)); }
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); }
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(); }
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(" ", "") .Replace(" ", "").Replace("▲", " ").Replace("▼", " "); 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); } }
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))
public static string ToString(ParsingTable table, List <RuleDefinition> rules) => ToString(table, SortedTerminals(rules).ToList(), SortedNonTerminals(rules).ToList());