From 88041b0af7c16919c119575eca86d0351f2dfec0 Mon Sep 17 00:00:00 2001 From: Thomas Ingram Date: Fri, 4 Nov 2016 12:53:51 -0400 Subject: [PATCH] Initialize instance variables before reading them --- lib/parslet/atoms/base.rb | 2 +- lib/parslet/atoms/entity.rb | 1 + lib/parslet/cause.rb | 4 ++-- lib/parslet/source/line_cache.rb | 1 + lib/parslet/transform.rb | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/parslet/atoms/base.rb b/lib/parslet/atoms/base.rb index ea11cb7..7761ee9 100644 --- a/lib/parslet/atoms/base.rb +++ b/lib/parslet/atoms/base.rb @@ -137,7 +137,7 @@ def self.precedence(prec) end precedence BASE def to_s(outer_prec=OUTER) - str = @label || to_s_inner(precedence) + str = label || to_s_inner(precedence) if outer_prec < precedence "(#{str})" else diff --git a/lib/parslet/atoms/entity.rb b/lib/parslet/atoms/entity.rb index 00215f4..343fdbe 100644 --- a/lib/parslet/atoms/entity.rb +++ b/lib/parslet/atoms/entity.rb @@ -16,6 +16,7 @@ def initialize(name, label=nil, &block) @name = name @label = label @block = block + @parslet = nil end def try(source, context, consume_all) diff --git a/lib/parslet/cause.rb b/lib/parslet/cause.rb index 8d2e48b..9de5054 100644 --- a/lib/parslet/cause.rb +++ b/lib/parslet/cause.rb @@ -5,8 +5,8 @@ module Parslet # class Cause def initialize(message, source, pos, children) - @message, @source, @pos, @children = - message, source, pos, children + @message, @source, @pos, @children, @context = + message, source, pos, children, nil end # @return [String, Array] A string or an array of message pieces that diff --git a/lib/parslet/source/line_cache.rb b/lib/parslet/source/line_cache.rb index e8c59b9..7961d66 100644 --- a/lib/parslet/source/line_cache.rb +++ b/lib/parslet/source/line_cache.rb @@ -10,6 +10,7 @@ def initialize # but probably make a scan to that position neccessary. @line_ends = [] @line_ends.extend RangeSearch + @last_line_end = nil end # Returns a tuple for the given input position. Input diff --git a/lib/parslet/transform.rb b/lib/parslet/transform.rb index 6e6f1b2..3e9a70b 100644 --- a/lib/parslet/transform.rb +++ b/lib/parslet/transform.rb @@ -131,7 +131,7 @@ def rule(expression, &block) # Allows accessing the class' rules # def rules - @__transform_rules || [] + @__transform_rules ||= [] end def inherited(subclass)