home: hub: minipeg

ref: f0adf4345753abac945bc9b57b4958c70dce766e
dir: /examples/local.peg/

View raw version
%{
#define YY_CTX_LOCAL 1
#define YY_CTX_MEMBERS \
  int count;
%}

Char	= ('\n' | '\r\n' | '\r')	{ yy->count++ }
	| .

%%

#include <stdio.h>
#include <string.h>

int main()
{
    yycontext yy;
    memset(&yy, 0, sizeof(yy));
    while (yyparse(&yy))
	;
    printf("%d newlines\n", yy.count);
    yyrelease(&yy);
    return 0;
}