= offset | offsettozero
145 |
146 | persecond = <#'(?i)persecond'> op expr (sep float)? cp
147 | pctileseries = <#'(?i)percentileseries'> op expr sep float (sep bool)? cp
148 | pow = <#'(?i)pow'> op expr sep number cp
149 | = persecond | pctileseries | pow
150 |
151 | randomwalk = <#'(?i)randomwalkfunction'> op path (sep number)? cp
152 | rangeseries = <#'(?i)rangeofseries'> op arglist cp
153 | = <#'(?i)reduceseries'>
154 | reduceseries = redkw op expr sep qstr sep number (sep qstr)* cp
155 | removeabovepct = <#'(?i)removeabovepercentile'> op expr sep float cp
156 | removeaboveval = <#'(?i)removeabovevalue'> op expr sep float cp
157 | removebelowpct = <#'(?i)removebelowpercentile'> op expr sep float cp
158 | removebelowval = <#'(?i)removebelowvalue'> op expr sep float cp
159 | removebtwpct = <#'(?i)removebetweenpercentile'> op expr sep float cp
160 | = randomwalk | rangeseries | reduceseries | removeabovepct
161 | = removeaboveval | removebelowpct | removebelowval
162 | = removebtwpct
163 | = rfns1 | rfns2 | rfns3
164 |
165 | scale = <#'(?i)scale'> op expr sep float cp
166 | scalesecs = <#'(?i)scaletoseconds'> op expr sep float cp
167 | secondyaxis = <#'(?i)secondyaxis'> op expr cp
168 | = <#'(?i)sin(function)?'>
169 | sinfn = sinkw op expr (sep float (sep float)?)? cp
170 | = <#'(?i)smartsummarize'>
171 | smartsum = smartsumkw op expr sep qstr (sep qstr (sep bool)?)? cp
172 | sortmaxima = <#'(?i)sortbymaxima'> op expr cp
173 | sortminima = <#'(?i)sortbyminima'> op expr cp
174 | sortname = <#'(?i)sortbyname'> op expr cp
175 | sqrt = <#'(?i)squareroot'> op expr cp
176 | stacked = <#'(?i)stacked'> op expr (sep qstr)? cp
177 | stddevseries = <#'(?i)stddevseries'> op arglist cp
178 | stdev = <#'(?i)stdev'> op expr sep number (sep float)? cp
179 | substr = <#'(?i)substr'> op expr (sep number (sep number)?)? cp
180 | sumseries = <#'(?i)sum(series)?'> op arglist cp
181 | sumserieswild = <#'(?i)sumserieswithwildcards'> op expr (sep number)* cp
182 | = <#'(?i)summarize'>
183 | summarize = sumkw op expr sep points (sep qstr (sep bool)?)? cp
184 | = scale | scalesecs | secondyaxis | sinfn | smartsum
185 | = sortmaxima | sortminima | sortname | sqrt | stacked
186 | = stddevseries | stdev | substr | sumseries | sumserieswild
187 | = summarize
188 | = sfns1 | sfns2 | sfns3 | sfns4
189 |
190 | threshold = <#'(?i)threshold'> op float (sep qstr (sep qstr))? cp
191 | timefn = <#'(?i)time(function)?'> op path (sep number)? cp
192 | timeshift = <#'(?i)timeshift'> op expr sep points (sep bool)? cp
193 | = <#'(?i)timestack'>
194 | timestack = tmstackkw op expr sep points sep number sep number cp
195 | transformnull = <#'(?i)transformnull'> op expr (sep number)? cp
196 | = threshold | timefn | timeshift | timestack | transformnull
197 |
198 | useabove = <#'(?i)useabove'> op expr float sep qstr sep qstr cp
199 | = useabove
200 |
201 | weightedavg = <#'(?i)weightedaverage'> op expr sep expr sep number cp
202 | = weightedavg
203 |
204 |
205 | = #'(?i)[a-z0-9.*_-]+'
206 | = <'\"'> uqpath <'\"'>
207 | path = uqpath | qpath
208 | = a|c|d|e|g|h|i|k|l|m|n|o|p|r|s|t|u|w
209 | = (expr <','>)* (Epsilon | expr)")
210 |
211 | (def query->tokens
212 | "The parser for the grammar, yields a naive AST built of tokens"
213 | (comp
214 | first
215 | (parse/parser init)))
216 |
--------------------------------------------------------------------------------