Sha256: 5d221c211689a8499aa0e981179f5d8c45da4fb283b96402847c16bcb360a4b5

Contents?: true

Size: 1.92 KB

Versions: 2

Compression:

Stored size: 1.92 KB

Contents

class Predicator::Lexer
options
  lineno
  column
macro
  SPACE       /[ \t\r\n]/
  LPAREN      /\(/
  RPAREN      /\)/
  LBRACKET    /\[/
  RBRACKET    /\]/
  TRUE        /true\b/
  FALSE       /false\b/
  BETWEEN     /between\b/
  IN          /in\b/
  BANG        /!/
  NOT         /not\b/
  DOT         /\./
  COMMA       /,/
  AND         /and\b/
  OR          /or\b/
  EQ          /=/
  GT          />/
  LT          /</
  ENDSWITH    /ends with/
  STARTSWITH  /starts with/
  BEGINSWITH  /begins with/
  BLANK       /is blank/
  PRESENT     /is present/
  AGO         /ago/
  FROMNOW     /from now/
  DATE        /\d{4}[-|\/]\d{2}[-|\/]\d{2}/i
  DURATION    /\d+d/
  INTEGER     /[+-]?\d(_?\d)*\b/
  STRING      /(["'])(?:\\?.)*?\1/
  IDENTIFIER  /[a-z][A-Za-z0-9_]*\b/
rule
  /#{SPACE}/       # ignore space
  /#{LPAREN}/      { [:LPAREN, text] }
  /#{RPAREN}/      { [:RPAREN, text] }
  /#{LBRACKET}/    { [:LBRACKET, text] }
  /#{RBRACKET}/    { [:RBRACKET, text] }
  /#{TRUE}/        { [:TRUE, text] }
  /#{FALSE}/       { [:FALSE, text] }
  /#{BETWEEN}/     { [:BETWEEN, text] }
  /#{IN}/          { [:IN, text] }
  /#{BANG}/        { [:BANG, text] }
  /#{NOT}/         { [:NOT, text] }
  /#{DOT}/         { [:DOT, text] }
  /#{COMMA}/       { [:COMMA, text] }
  /#{AND}/         { [:AND, text] }
  /#{OR}/          { [:OR, text] }
  /#{EQ}/          { [:EQ, text] }
  /#{GT}/          { [:GT, text] }
  /#{LT}/          { [:LT, text] }
  /#{AGO}/         { [:AGO, text] }
  /#{FROMNOW}/     { [:FROMNOW, text] }
  /#{ENDSWITH}/    { [:ENDSWITH, text] }
  /#{STARTSWITH}/  { [:STARTSWITH, text] }
  /#{BEGINSWITH}/  { [:STARTSWITH, text] }
  /#{BLANK}/       { [:BLANK, text] }
  /#{PRESENT}/     { [:PRESENT, text] }
  /#{DATE}/        { [:DATE, text] }
  /#{DURATION}/    { [:DURATION, text] }
  /#{INTEGER}/     { [:INTEGER, text] }
  /#{STRING}/      { [:STRING, text[1...-1]] }
  /#{IDENTIFIER}/  { [:IDENTIFIER, text] }
inner
  def do_parse; end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
predicator-1.2.1 lib/predicator/lexer.rex
predicator-1.2.0 lib/predicator/lexer.rex