internal override string GetDropCommand(DropExpression expression) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append($"DROP TABLE {expression.TableName};"); return(stringBuilder.ToString()); }
protected override void VisitDropExpression(DropExpression expression) { CS.IndentInOut( "DropExpression", () => { VisitExpression(expression.Expression); CS.If( $"{Locals.Result}.IsSuccess", () => { CS.Ln($"{Locals.Result} = Result.Success({Locals.Result}, {Locals.Result}.Next);"); }); }); }
private static Expression Expression(INode node) { switch (node.Name) { case "sequence": return(Sequence(node)); case "choice": return(Choice(node)); case "prefix.drop": return(DropExpression.From(node[0], Expression(node[0]))); case "prefix.lift": return(LiftExpression.From(node[0], Expression(node[0]))); case "prefix.fuse": return(FuseExpression.From(node[0], Expression(node[0]))); case "prefix.not": return(NotExpression.From(node[0], Expression(node[0]))); case "suffix.zero-or-more": return(StarExpression.From(node[0], Expression(node[0]))); case "suffix.one-or-more": return(PlusExpression.From(node[0], Expression(node[0]))); case "suffix.zero-or-one": return(OptionalExpression.From(node[0], Expression(node[0]))); case "inline": return(InlineExpression.From(node[0], Tree.Rule.From(Identifier(node[0]), Expression(node[1])))); case "identifier": return(NameExpression.From(node, Identifier(node))); case "any": return(AnyExpression.From(node)); case "verbatim-string": return(StringLiteralExpression.From(node, ((ILeaf)node).Value)); case "character-class": return(Class(node)); case "string": return(String(node)); default: throw new NotImplementedException(); } }
private Expression Prefix(INode node) { switch (node.Name) { case "and": return(AndExpression.From(node, Suffix(node[0]))); case "not": return(NotExpression.From(node, Suffix(node[0]))); case "lift": return(LiftExpression.From(node, Suffix(node[0]))); case "drop": return(DropExpression.From(node, Suffix(node[0]))); case "fuse": return(FuseExpression.From(node, Suffix(node[0]))); default: return(Suffix(node)); } }
protected override void VisitDropExpression(DropExpression expression) { Writer.Write($"{OpSymbols.Drop}"); MaybeParent(expression.Expression is PrefixExpression, expression.Expression); }
protected override void VisitDropExpression(DropExpression expression) { base.VisitDropExpression(expression); Push(Drop.From(Pop())); }
protected override void VisitDropExpression(DropExpression expression) { base.VisitDropExpression(expression); SetNullable(expression, expression.Expression.Attr.IsNullable); }
internal abstract string GetDropCommand(DropExpression expression);