Sha256: ad14ced64ed5f629835d6a0241fb6bbe4373c921c68173a2afc64cd38c8feead

Contents?: true

Size: 924 Bytes

Versions: 1

Compression:

Stored size: 924 Bytes

Contents

grammar Calculator;
@header {
package org.embulk.filter.calc;
}

expr: <assoc=right> expr '^' expr      # Power
    | expr op=('*'|'/'|'%') expr       # MulDivMod
    | expr op=('+'|'-') expr           # AddSub
    | NUM                              # Number
    | ID                               # Identifier
    | func                             # MathFunc
    | '(' expr ')'                     # Paren
    ;

func: COS '(' expr ')' # FuncCos
    | TAN '(' expr ')' # FuncTan
    | SIN '(' expr ')' # FuncSin
//    | ACOS
//    | ATAN
//    | ASIN
//    | LOG
//    | LN
//    | ROUDUP
//    | ROUDDOWN
    ;

ADD: '+';
SUB: '-';
MUL: '*';
DIV: '/';
MOD: '%';

COS: 'cos';
SIN: 'sin';
TAN: 'tan';
// ACOS: 'acos';
// ASIN: 'asin';
// ATAN: 'atan';
// LN: 'ln';
// LOG: 'log';

COMMA: ',';

ROUNDUP: 'roundup';
ROUNDDOWN: 'roundown';

NUM: '-'?[0-9]+('.' [0-9]+)?;
ID: [a-zA-Z][0-9A-Za-z_-]*;
WS: [ \t\r\n]+ -> skip;



Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
embulk-filter-calc-0.1.0 src/main/antlr/org/embulk/filter/calc/Calculator.g4