Borrowed Java cf file from bnfc, since it's used in lexgen