public override IASTNode VisitDataType(SqlServerCommandParser.DataTypeContext context) { DataTypeSegment dataTypeSegment = new DataTypeSegment(); dataTypeSegment.SetDataTypeName(((KeywordValue)Visit(context.dataTypeName())).GetValue()); dataTypeSegment.SetStartIndex(context.Start.StartIndex); dataTypeSegment.SetStopIndex(context.Stop.StopIndex); if (null != context.dataTypeLength()) { DataTypeLengthSegment dataTypeLengthSegment = (DataTypeLengthSegment)Visit(context.dataTypeLength()); dataTypeSegment.SetDataLength(dataTypeLengthSegment); } return(dataTypeSegment); }
public override IASTNode VisitDataTypeLength(SqlServerCommandParser.DataTypeLengthContext context) { DataTypeLengthSegment dataTypeLengthSegment = new DataTypeLengthSegment(); dataTypeLengthSegment.SetStartIndex(context.Start.StartIndex); dataTypeLengthSegment.SetStopIndex(context.Stop.StartIndex); ITerminalNode[] numbers = context.NUMBER_(); if (numbers.Length == 1) { dataTypeLengthSegment.SetPrecision(int.Parse(numbers[0].GetText())); } if (numbers.Length == 2) { dataTypeLengthSegment.SetPrecision(int.Parse(numbers[0].GetText())); dataTypeLengthSegment.SetScale(int.Parse(numbers[1].GetText())); } return(dataTypeLengthSegment); }
public void SetDataLength(DataTypeLengthSegment dataLength) { this.dataLength = dataLength; }