Sha256: d871dce96f7e3fd6dbb3271b840535721739737bc6eed1d56d52ac70746f17e1

Contents?: true

Size: 455 Bytes

Versions: 3

Compression:

Stored size: 455 Bytes

Contents

# frozen_string_literal: true

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

3 entries across 3 versions & 1 rubygems

Version Path
basic101-1.0.2 lib/basic101/parser/if_statement.rb
basic101-1.0.1 lib/basic101/parser/if_statement.rb
basic101-1.0.0 lib/basic101/parser/if_statement.rb