#!/usr/bin/python3
import os
import re
import sys

HURRAY=re.compile(".*HURRAY")
SCANVARFOUND=re.compile(r" *\* *(Bond|Angle|Dihedral)")
SCANVARVAL=re.compile(r": *([^ ]+)")
ENERGY=re.compile(r"FINAL.*  ([0-9.-]+)")

def scan(fn, altro=None):
    if altro is not None:
        altro=re.compile(altro+" *([0-9.-]*)")
    a=""
    hurray=False
    with open(fn) as inp:
        for l in inp:
            if SCANVARFOUND.match(l):
                v=SCANVARVAL.search(l).groups()[0]
            if HURRAY.match(l):
                hurray=True
            if hurray:
                if altro:
                    am=altro.search(l)
                    if am:
                        a=am.groups()[0]
                e=ENERGY.search(l)
                if e:
                    print(v,e.groups()[0], a)
                    hurray=False

if __name__ == "__main__":
    scan(*sys.argv[1:])
