Sha256: b5f5f5ea232f6c1329fc741acdef5ab0769669083e2fcb29779a02eb4bbb736b

Contents?: true

Size: 1013 Bytes

Versions: 1

Compression:

Stored size: 1013 Bytes

Contents

module Bindy
  grammar Language

    rule expression
      function / value
    end

    rule function
      identifier:identifier space* '(' space* arg_list:arg_list space* ')' <Function>
    end

    rule arg_list
      expression space* ',' space* arg_list <ArgList> / 
      expression /
      space*
    end

    rule identifier
      [a-z0-9\_]+
    end

    rule value
      number / boolean / string / null
    end

    rule string
      "'" value:[\da-zA-ZáéíóúüñÁÉÍÓÚÜÑ¿?!¡\s\@\#\$\%\&\/\\\*\_\-\+\/\\\*\_\-\+\.\:\,\;\<\>\|\"\\(\)]* "'" <LiteralString>
    end

    rule number
      float / integer
    end

    rule integer
      [\+\-]? [\d]+ <LiteralInteger>
    end

    rule float
      [\+\-]? [\d]+ '.' [\d]+ <LiteralFloat>
    end

    rule boolean
      true / false
    end

    rule true
      'true' <LiteralTrue>
    end

    rule false
      'false' <LiteralFalse>
    end

    rule null
      'null' <LiteralNull>
    end

    rule space
      [\s\t\n]
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bindy-0.0.4 lib/bindy/language.treetop