from moses.dictree import load
import sys

if len(sys.argv) != 4:
    print("Usage: %s table nscores tlimit < query > result" % (sys.argv[0]))
    sys.exit(0)

path = sys.argv[1]
nscores = int(sys.argv[2])
tlimit = int(sys.argv[3])

table = load(path, nscores, tlimit)

for line in sys.stdin:
    f = line.strip()
    result = table.query(f)
    # you could simply print the matches
    # print '\n'.join([' ||| '.join((f, str(e))) for e in matches])
    # or you can use its attributes
    print result.source
    for e in result:
        if e.lhs:
            print('\t%s -> %s ||| %s ||| %s' % (
                    e.lhs, 
                    ' '.join(e.rhs), 
                    e.scores, 
                    e.alignment
                )
            )
        else:
            print('\t%s ||| %s ||| %s' % (
                    ' '.join(e.rhs), 
                    e.scores, 
                    e.alignment
                )
            )
