Class: Kanocc::Item
- Inherits:
-
Object
- Object
- Kanocc::Item
- Defined in:
- lib/kanocc/earley.rb
Instance Attribute Summary collapse
-
#dot ⇒ Object
readonly
Returns the value of attribute dot.
-
#j ⇒ Object
readonly
Returns the value of attribute j.
-
#n ⇒ Object
readonly
Returns the value of attribute n.
-
#prev_pos_max ⇒ Object
Returns the value of attribute prev_pos_max.
-
#prev_pos_min ⇒ Object
Returns the value of attribute prev_pos_min.
-
#rule ⇒ Object
readonly
Returns the value of attribute rule.
Instance Method Summary collapse
-
#initialize(rule, dot, j, n, prev_pos_min = 0, prev_pos_max = 0) ⇒ Item
constructor
A new instance of Item.
- #inspect ⇒ Object
- #set_prev_pos(new_prev_pos) ⇒ Object
- #symbol_after_dot ⇒ Object
- #symbol_before_dot ⇒ Object
Constructor Details
#initialize(rule, dot, j, n, prev_pos_min = 0, prev_pos_max = 0) ⇒ Item
Returns a new instance of Item.
261 262 263 264 265 266 267 268 |
# File 'lib/kanocc/earley.rb', line 261 def initialize(rule, dot, j, n, prev_pos_min = 0, prev_pos_max = 0) @rule = rule @dot = dot @j = j @n = n @prev_pos_min = prev_pos_min @prev_pos_max = prev_pos_max end |
Instance Attribute Details
#dot ⇒ Object (readonly)
Returns the value of attribute dot.
258 259 260 |
# File 'lib/kanocc/earley.rb', line 258 def dot @dot end |
#j ⇒ Object (readonly)
Returns the value of attribute j.
258 259 260 |
# File 'lib/kanocc/earley.rb', line 258 def j @j end |
#n ⇒ Object (readonly)
Returns the value of attribute n.
258 259 260 |
# File 'lib/kanocc/earley.rb', line 258 def n @n end |
#prev_pos_max ⇒ Object
Returns the value of attribute prev_pos_max.
259 260 261 |
# File 'lib/kanocc/earley.rb', line 259 def prev_pos_max @prev_pos_max end |
#prev_pos_min ⇒ Object
Returns the value of attribute prev_pos_min.
259 260 261 |
# File 'lib/kanocc/earley.rb', line 259 def prev_pos_min @prev_pos_min end |
#rule ⇒ Object (readonly)
Returns the value of attribute rule.
258 259 260 |
# File 'lib/kanocc/earley.rb', line 258 def rule @rule end |
Instance Method Details
#inspect ⇒ Object
286 287 288 289 290 291 292 |
# File 'lib/kanocc/earley.rb', line 286 def inspect return "[" + @rule.lhs.inspect + " --> " + (@rule.rhs.slice(0, dot) + [Dot.instance] + @rule.rhs.slice(dot, @rule.rhs.length - dot)).map{|symbol| symbol.inspect}.join(" ") + " ; " + @j.inspect + ", " + @n.inspect + "]" end |
#set_prev_pos(new_prev_pos) ⇒ Object
278 279 280 281 282 283 284 |
# File 'lib/kanocc/earley.rb', line 278 def set_prev_pos(new_prev_pos) if new_prev_pos < @prev_pos_min @prev_pos_min = new_prev_pos elsif new_prev_pos > @prev_pos_max @prev_pos_max = new_prev_pos end end |
#symbol_after_dot ⇒ Object
270 271 272 |
# File 'lib/kanocc/earley.rb', line 270 def symbol_after_dot return @dot < @rule.rhs.size ? @rule.rhs[@dot] : nil end |
#symbol_before_dot ⇒ Object
274 275 276 |
# File 'lib/kanocc/earley.rb', line 274 def symbol_before_dot return @dot > 0 ? @rule.rhs[@dot - 1] : nil end |