class Planner::State

Attributes

id[R]

Public Class Methods

new(id) click to toggle source
# File lib/sfpagent/sfplanner.rb, line 241
def initialize(id)
        @id = id
end
read(i, lines, variables) click to toggle source
# File lib/sfpagent/sfplanner.rb, line 213
def self.read(i, lines, variables)
        state = State.new(lines[i] == 'begin_state' ? 'init' : 'goal')
        if state.id == 'init'
                i += 1
                var_index = 0
                i.upto(lines.length) do |j|
                        i = j
                        break if lines[j] == 'end_state'
                        var = variables[var_index]
                        state[var.sym] = var[lines[j].to_i]
                        var_index += 1
                end
                fail "Cannot find end_state" if lines[i] != 'end_state'
                [i, state]
        elsif state.id == 'goal'
                i += 2
                i.upto(lines.length) do |j|
                        i = j
                        break if lines[j] == 'end_goal'
                        parts = lines[j].split(' ')
                        var = variables[parts[0].to_i]
                        state[var.sym] = var[parts[1].to_i]
                end
                fail "Cannot find end_goal" if lines[i] != 'end_goal'
                [i, state]
        end
end