main : (~func)*; func : ident? (~main)*; ident : '\b[[:alpha:]_][[:alnum:]_]*\b'{identifier};