class Temple::Mixins::GrammarDSL::Root

def validate!(exp)

def validate!(exp)
  unmatched = []
  unless match(exp, unmatched)
    require 'pp'
    entry = unmatched.first
    unmatched.reverse_each do |u|
      entry = u if u.flatten.size < entry.flatten.size
    end
    raise(InvalidExpression, PP.pp(entry.last, "#{@grammar}::#{entry.first} did not match\n"))
  end
end