public Void Visit(ListStatement listStatement, SortedSet <string> free) { for (var i = 0; i < listStatement.exprs.Count; i++) { listStatement.exprs[i].Accept(this, free); } return(null); }
public IValue Visit(ListStatement listStatement) { //var list = listStatement.Accept(this); //var x = ((ListValue)list).List; //foreach (var s in listStatement.exprs) //{ // x.Add(s.Accept(this)); //} //return new ListValue(x); return(null); }
public Statement Visit(ListStatement listStatement) { return(null); }
public Type Visit(ListStatement listStatement, FunctionGeneratorEnvironment arg) { throw new NotImplementedException(); }
/// <summary> /// Parse the SQL string and return a Statement /// </summary> /// <param name="value"></param> /// <returns></returns> public static IStatement Parse(string value) { IStatement result = null; foreach (KeyValuePair <QAStatementType, string[]> kv in Clauses) { string[] splitters = kv.Value; if (!value.StartsWith(splitters[0], StringComparison.InvariantCultureIgnoreCase)) { continue; } List <KeyValue> clauses = ParseStatement(value, splitters); CheckRequiredClause(clauses, kv.Key); #region Return strong-type statements switch (kv.Key) { #region DML Statements case QAStatementType.Select: result = new SelectStatement(clauses); break; case QAStatementType.Insert: result = new InsertStatement(clauses); break; case QAStatementType.Update: result = new UpdateStatement(clauses); break; #endregion #region DDL Statements case QAStatementType.Delete: result = new DeleteStatement(clauses); break; case QAStatementType.CreateTable: result = new CreateTableStatement(clauses); break; case QAStatementType.DropTable: result = new DropTableStatement(clauses); break; #endregion #region QueryAnything Statements case QAStatementType.OpenFile: result = new OpenStatement(clauses); break; case QAStatementType.OpenDatabase: result = new OpenDatabaseStatement(clauses); break; case QAStatementType.SaveDataSet: result = new SaveDataSetStatement(clauses); break; case QAStatementType.SaveDataTable: result = new SaveDataTableStatement(clauses); break; case QAStatementType.Commit: result = new CommitStatement(clauses); break; case QAStatementType.Rollback: result = new RollbackStatement(clauses); break; case QAStatementType.Clear: result = new ClearStatement(clauses); break; case QAStatementType.List: result = new ListStatement(clauses); break; case QAStatementType.ViewDataSet: result = new ViewDataSet(clauses); break; #endregion default: throw new ArgumentOutOfRangeException("key=" + kv.Key); } #endregion if (result != null) { break; } } return(result); }