From: Manuel C. <mco...@gm...> - 2021-06-28 07:27:51
|
El 26/06/2021 a las 0:54, Vinícius dos Santos Oliveira escribió: > Em sex., 25 de jun. de 2021 às 10:07, Andrew J. Schorr > <as...@te...> escreveu: >> I'm not sure that I understand what "rule" means in an awk script. > ... > I mean the pattern. On plugin startup, I want to traverse all the > program rules to check if any pattern in them matches the AST > "somevar". > > I'll code the plugin's behaviour to depend on whether such a rule > exists in the program. The end result gives an approximation of what's > offered by BEGINFILE rules to deal with errors on single files, but > for record-level errors. The fact that a rule exist doesn't ensures it will be executed. Use of 'next' or 'getline' can prevent the execution of some rules. It seems you want to check if the user wants to handle record errors. It this is want you want, then an alternative is to check the existence of a specific user-defined function, instead of a rule. I.e., instead of expecting the user to write some "JSONRECORDERROR" rule, expect the user to write some "JsonRecordError()" function. If there is such function the extension will invoke it. If not, the extension will execute a default error handling action. Checking the existence of a function is straightforward. Just look for the corresponding entry in the FUNCTAB array. No need to extend the API. Is this what you want? Regards. -- Manuel Collado - http://mcollado.z15.es |