File: yyaccept_missing.re

package info (click to toggle)
re2c 4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,512 kB
  • sloc: cpp: 34,160; ml: 8,494; sh: 5,311; makefile: 1,014; haskell: 611; python: 431; ansic: 234; javascript: 113
file content (68 lines) | stat: -rw-r--r-- 1,070 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// re2c $INPUT -o $OUTPUT -bci
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define YYGETCONDITION()  yy_state
#define YYSETCONDITION(s) yy_state = s
#define YYCTYPE         char
#define YYCURSOR        p
#define YYLIMIT         (s+l)
#define YYMARKER        q
#define YYFILL(n)

#define STATE(name)  yyc##name

static enum YYCONDTYPE yy_state;

/*!types:re2c */

int scan(char *s, int l)
{
	char *p = s;
	char *q = 0;
	char *t;

	for(;;)
	{
		t = p;
/*!re2c
	re2c:indent:top = 2;

	TABS_AND_SPACES = [ \t]*;
	LITERAL_DOLLAR = "$"[a-zA-Z];

	<INITIAL>LITERAL_DOLLAR {
		printf("FOUND %s\n", t);
		continue;
	}

	<ST_VALUE>LITERAL_DOLLAR+ {
		printf("Found $ or $\\<x>\n");
		continue;
	}

	<ST_VALUE>TABS_AND_SPACES {
		YYSETCONDITION(STATE(INITIAL));
		printf("Found spaces\n");
	}

	<INITIAL>"\000"		{ printf("EOF\n");	return 0; }
	<INITIAL>[^]			{ printf("ERR\n");	return 1; }

*/
	}
}

int main(int argc, char **argv)
{
	if (argc > 1)
	{
		return scan(argv[1], strlen(argv[1]));
	}
	else
	{
		fprintf(stderr, "%s <expr>\n", argv[0]);
		return 1;
	}
}