Sha256: d8b63a19fe88289d413541ec04568e7a1b1931374c0da3a258182d0e46748526

Contents?: true

Size: 1.03 KB

Versions: 19

Compression:

Stored size: 1.03 KB

Contents

require 'each_token'


class Token
	Modules :Then, :Else, :Elsif, :IflessThen, :IflessElse, :IflessElsif do
		def closeBeginner pi
			if !((ps = parent.sentences)[-1].first != self)
				raise Error.new("'#{str}' without 'if' not registered as sentence in upper clause, '#{parent.str}'")	
			end
			if !ps[-2]
				raise Error.new("'#{str}' without 'if' missing previous line")
			end
			ps[-2].last = nil
			ps.pop
			Token.addMod ps[-2].first.first, "if("
			case @kind
			when :ifless_then, :then
				Token.addMod orgStarter.first, ")"
			when :ifless_elsif, :ifless_else, :elsif, :else
				Token.addMod orgStarter.first, ")then "
			end
			"end"
		end
	end
	[
	 [:Then, :ifless_then]
	 [:Else, :ifless_else]
	 [:Elsif, :ifless_elseif]
	].each do |modName, tk|
		Modules modName do
			MethodChain.override do
				module_eval %{
					def onClassify
						begin
							super
						rescue OrphanContClause => e
							if !prev_nl?
								raise e
							else
								spush
								kind = :#{tk}
							end
						end
					end
				}
			end
		end
	end
end



Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
YkLib-0.1.8.9 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.8 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.7 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.6 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.5 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.4 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.3 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.2 lib/Yk/indenter/if_less.rb
YkLib-0.1.8.1 lib/Yk/indenter/if_less.rb
YkLib-0.1.8 lib/Yk/indenter/if_less.rb
YkLib-0.1.7.1 lib/Yk/indenter/if_less.rb
YkLib-0.1.7 lib/Yk/indenter/if_less.rb
YkLib-0.1.6 lib/Yk/indenter/if_less.rb
YkLib-0.1.5 lib/Yk/indenter/if_less.rb
YkLib-0.1.4 lib/Yk/indenter/if_less.rb
YkLib-0.1.3 lib/Yk/indenter/if_less.rb
YkLib-0.1.2 lib/Yk/indenter/if_less.rb
YkLib-0.1.1 lib/Yk/indenter/if_less.rb
YkLib-0.1.0 lib/YkLib/Yk/indenter/if_less.rb