Esempio n. 1
0
from PositionIndex import PositionIndex

comp_rels = ['<', '>', '>=', 'lessThan', 'greaterThan', 'succ']
math_op_rels = ['+', '-', '*', '/', 'min', 'minus', 'plus']
obj_loc_place = set([('location', PositionIndex([0, 0]))])
coord_places = set([('location', PositionIndex([0, p])) for p in [1, 2]])

# an equivalence class that has one of these places as a member must
# be a number
num_places = set([(c, PositionIndex([0])) for c in comp_rels] + \
                 [(c, PositionIndex([1])) for c in comp_rels] + \
                 [(o, PositionIndex([0])) for o in math_op_rels] + \
                 [(o, PositionIndex([1])) for o in math_op_rels] + \
                 [(o, PositionIndex([2])) for o in math_op_rels] + \
                 [('int', PositionIndex([0]))])

# these are the place types
AGENT, OBJECT, COORD, NUM_MAX, NUM_MIN, NUM, UNKNOWN = range(7)

# for string output
type_names = {
    AGENT: 'agent',
    OBJECT: 'object',
    COORD: 'coord',
    NUM_MAX: 'num_max',
    NUM_MIN: 'num_min',
    NUM: 'num',
    UNKNOWN: 'unknown'
}

# specificity ordering relations