Sha256: 29e968a1aac9ba6ca208e5807c5b382447d7b0dda0ca241ad8bb39c3d29fcc39

Contents?: true

Size: 424 Bytes

Versions: 2

Compression:

Stored size: 424 Bytes

Contents

module Basic101

  class Parser < Parslet::Parser

    rule(:if_statement) do
      str('IF').as(:if) >>
        space? >> expression.as(:condition) >> 
        (space? >> str('THEN')).maybe >>
        space? >> if_block.as(:then_block) >>
        (space? >> str('ELSE') >> space? >> if_block).maybe.as(:else_block)
    end

    rule(:if_block) do
      (integer.as(:if_line_number) |
       statements)
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
basic101-0.4.0 lib/basic101/parser/if_statement.rb
basic101-0.2.0 lib/basic101/parser/if_statement.rb