Sha256: 6b9994977772a190e7c8a3cf26f491a5e32257a1d1210df840472e2539859f89

Contents?: true

Size: 956 Bytes

Versions: 1

Compression:

Stored size: 956 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
    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 space
      [\s\t\n]
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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