/// <summary> /// Builds a row limit specification. /// </summary> /// <returns>row limit spec</returns> public static RowLimitSpec BuildRowLimitSpec(EsperEPL2GrammarParser.RowLimitContext ctx) { Object numRows; Object offset; if (ctx.o != null) // format "rows offset offsetcount" { numRows = ParseNumOrVariableIdent(ctx.n1, ctx.i1); offset = ParseNumOrVariableIdent(ctx.n2, ctx.i2); } else if (ctx.c != null) // format "offsetcount, rows" { offset = ParseNumOrVariableIdent(ctx.n1, ctx.i1); numRows = ParseNumOrVariableIdent(ctx.n2, ctx.i2); } else { numRows = ParseNumOrVariableIdent(ctx.n1, ctx.i1); offset = null; } int? numRowsInt = null; String numRowsVariable = null; if (numRows is String) { numRowsVariable = (String)numRows; } else { numRowsInt = (int?)numRows; } int? offsetInt = null; String offsetVariable = null; if (offset is String) { offsetVariable = (String)offset; } else { offsetInt = (int?)offset; } return(new RowLimitSpec(numRowsInt, offsetInt, numRowsVariable, offsetVariable)); }
public static RowLimitSpec BuildRowLimitSpec(EsperEPL2GrammarParser.RowLimitContext ctx) { object numRows; object offset; if (ctx.o != null) { // format "rows offset offsetcount" numRows = ParseNumOrVariableIdent(ctx.n1, ctx.i1); offset = ParseNumOrVariableIdent(ctx.n2, ctx.i2); } else if (ctx.c != null) { // format "offsetcount, rows" offset = ParseNumOrVariableIdent(ctx.n1, ctx.i1); numRows = ParseNumOrVariableIdent(ctx.n2, ctx.i2); } else { numRows = ParseNumOrVariableIdent(ctx.n1, ctx.i1); offset = null; } int? numRowsInt = null; string numRowsVariable = null; if (numRows is string) { numRowsVariable = (string) numRows; } else { numRowsInt = numRows.AsInt32(); } int? offsetInt = null; string offsetVariable = null; if (offset is string) { offsetVariable = (string) offset; } else { offsetInt = offset.AsBoxedInt32(); } return new RowLimitSpec(numRowsInt, offsetInt, numRowsVariable, offsetVariable); }