3 Commits

Author SHA1 Message Date
99493865c1 bumped and added parslet as dep 2015-07-09 22:14:25 +03:00
d6d8403829 update parsley version 2015-05-20 17:34:13 +03:00
663154ba24 fix small glitch/typo 2015-05-20 17:33:38 +03:00
5 changed files with 21 additions and 9 deletions

View File

@ -1,6 +1,8 @@
source "http://rubygems.org" source "http://rubygems.org"
gem "parslet" gem "rake"
gem "salama-reader" , :path => "."
# Add dependencies to develop your gem here. # Add dependencies to develop your gem here.
# Include everything needed to run rake, tests, features, etc. # Include everything needed to run rake, tests, features, etc.

View File

@ -1,10 +1,17 @@
PATH
remote: .
specs:
salama-reader (0.2.0)
parslet (~> 1.7.0)
GEM GEM
remote: http://rubygems.org/ remote: http://rubygems.org/
specs: specs:
blankslate (2.1.2.4) blankslate (3.1.3)
minitest (5.3.2) minitest (5.6.1)
parslet (1.6.1) parslet (1.7.0)
blankslate (~> 2.0) blankslate (>= 2.0, <= 4.0)
rake (10.4.2)
rubygems-tasks (0.2.4) rubygems-tasks (0.2.4)
PLATFORMS PLATFORMS
@ -12,5 +19,6 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
minitest minitest
parslet rake
rubygems-tasks rubygems-tasks
salama-reader!

View File

@ -2,7 +2,7 @@
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'salama-reader' s.name = 'salama-reader'
s.version = '0.0.3' s.version = '0.2.0'
s.authors = ['Torsten Ruger'] s.authors = ['Torsten Ruger']
s.email = 'torsten@villataika.fi' s.email = 'torsten@villataika.fi'
@ -13,4 +13,6 @@ Gem::Specification.new do |s|
s.require_paths = ['lib'] s.require_paths = ['lib']
s.summary = 'Ruby parser for the salama machine' s.summary = 'Ruby parser for the salama machine'
s.add_dependency 'parslet', '~> 1.7.0'
end end

View File

@ -17,7 +17,7 @@ HERE
end end
def pest_while_reverse def pest_while_reverse
@string_input = "puts "1" while true " @string_input = "puts '1' while true "
@parse_output = {:expression_list=>[{:while=>"while", :while_cond=>{:integer=>"1"}, :do=>"do", :body=>{:expressions=>[{:l=>{:name=>"tmp"}, :o=>"= ", :r=>{:name=>"a"}}, {:call_site=>{:name=>"puts"}, :argument_list=>[{:argument=>{:name=>"b"}}]}], :end=>"end"}}]} @parse_output = {:expression_list=>[{:while=>"while", :while_cond=>{:integer=>"1"}, :do=>"do", :body=>{:expressions=>[{:l=>{:name=>"tmp"}, :o=>"= ", :r=>{:name=>"a"}}, {:call_site=>{:name=>"puts"}, :argument_list=>[{:argument=>{:name=>"b"}}]}], :end=>"end"}}]}
@transform_output = Ast::ExpressionList.new( [Ast::WhileExpression.new(Ast::IntegerExpression.new(1), [Ast::AssignmentExpression.new(Ast::NameExpression.new(:tmp),Ast::NameExpression.new(:a)), Ast::CallSiteExpression.new(:puts, [Ast::NameExpression.new(:b)] ,Ast::NameExpression.new(:self))] )]) @transform_output = Ast::ExpressionList.new( [Ast::WhileExpression.new(Ast::IntegerExpression.new(1), [Ast::AssignmentExpression.new(Ast::NameExpression.new(:tmp),Ast::NameExpression.new(:a)), Ast::CallSiteExpression.new(:puts, [Ast::NameExpression.new(:b)] ,Ast::NameExpression.new(:self))] )])
@parser = @parser @parser = @parser

View File

@ -18,7 +18,7 @@ HERE
end end
def pest_while_reverse def pest_while_reverse
@string_input = "puts "1" while true " @string_input = "puts '1' while true "
@parse_output = {:while=>"while", :while_cond=>{:integer=>"1"}, :do=>"do", :body=>{:expressions=>[{:l=>{:name=>"tmp"}, :o=>"= ", :r=>{:name=>"a"}}, {:call_site=>{:name=>"puts"}, :argument_list=>[{:argument=>{:name=>"b"}}]}], :end=>"end"}} @parse_output = {:while=>"while", :while_cond=>{:integer=>"1"}, :do=>"do", :body=>{:expressions=>[{:l=>{:name=>"tmp"}, :o=>"= ", :r=>{:name=>"a"}}, {:call_site=>{:name=>"puts"}, :argument_list=>[{:argument=>{:name=>"b"}}]}], :end=>"end"}}
@transform_output = Ast::WhileExpression.new(Ast::IntegerExpression.new(1), [Ast::AssignmentExpression.new(Ast::NameExpression.new(:tmp),Ast::NameExpression.new(:a)), Ast::CallSiteExpression.new(:puts, [Ast::NameExpression.new(:b)] ,Ast::NameExpression.new(:self))] ) @transform_output = Ast::WhileExpression.new(Ast::IntegerExpression.new(1), [Ast::AssignmentExpression.new(Ast::NameExpression.new(:tmp),Ast::NameExpression.new(:a)), Ast::CallSiteExpression.new(:puts, [Ast::NameExpression.new(:b)] ,Ast::NameExpression.new(:self))] )
@parser = @parser.while_do @parser = @parser.while_do