public override bool Transform(ReservedWord node)
 {
     if (node.OriginalValue.ToUpper() == "AS")
     {
         node.Value = string.Empty;
     }
     return base.Transform(node);
 }
예제 #2
0
 public virtual bool Visit(ReservedWord node)
 {
     return true;
 }
예제 #3
0
 public override bool Transform(ReservedWord node)
 {
     node.Value = CaseFormatUtils.Convert(_entity.ReservedWordCase, node.Value);
     return base.Transform(node);
 }
예제 #4
0
        public override bool Visit(ReservedWord node)
        {
            Regex regex = new Regex("^(AS|DESC|ASC)$", RegexOptions.IgnoreCase);
            Match m = regex.Match(node.OriginalValue);
            if (m.Success)
            {
                _currentLine = _tabTool.Pad(_currentLine, _LeftIndentSize.Peek());
            }

            //TODO CASE式のパターン実装が難しいので、ひとまずべた書き
            if (node.Value.Equals("CASE", StringComparison.CurrentCultureIgnoreCase))
            {
                _Indents.Push(_tabTool.Pad(string.Empty, _currentLine.Length+3));
                AddResultSql(node.Value);
            }
            else if (node.Value.Equals("WHEN" ,StringComparison.CurrentCultureIgnoreCase)
                || node.Value.Equals("THEN",StringComparison.CurrentCultureIgnoreCase)
                || node.Value.Equals("ELSE",StringComparison.CurrentCultureIgnoreCase))
            {
                AddNewLineResultSql();
                AddResultSql("\t");
                AddResultSql(node.Value);
                AddNewLineResultSql();
                AddResultSql("\t\t\t");
            }
            else if (node.Value.Equals("END", StringComparison.CurrentCultureIgnoreCase))
            {
                AddNewLineResultSql();
                AddResultSql(node.Value);
                _Indents.Pop();
            }
            else
            {
                AddResultSql(node.Value);
            }

            return base.Visit(node);
        }
예제 #5
0
 public virtual bool Transform(ReservedWord node)
 {
     return true;
 }