• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 %{
2 /* sconfig, coreboot device tree compiler */
3 /* SPDX-License-Identifier: GPL-2.0-only */
4 
5 #include "sconfig.tab.h"
6 
7 int linenum = 0;
8 %}
9 %option nodebug
10 %%
11 [ \t]+			{}
12 #.*\n			{linenum++;}
13 \r?\n			{linenum++;}
14 chip			{return(CHIP);}
15 device			{return(DEVICE);}
16 alias			{return(ALIAS);}
17 ops			{return(OPS);}
18 use			{return(REFERENCE);}
19 ref			{return(REFERENCE);}
20 as			{return(ASSOCIATION);}
21 register		{return(REGISTER);}
22 fw_config		{return(FW_CONFIG_TABLE);}
23 field			{return(FW_CONFIG_FIELD);}
24 option			{return(FW_CONFIG_OPTION);}
25 probe			{return(FW_CONFIG_PROBE);}
26 on			{yylval.number=1; return(BOOL);}
27 off			{yylval.number=0; return(BOOL);}
28 hidden			{yylval.number=3; return(STATUS);}
29 mandatory		{yylval.number=5; return(STATUS);}
30 pci			{yylval.number=PCI; return(BUS);}
31 pnp			{yylval.number=PNP; return(BUS);}
32 i2c			{yylval.number=I2C; return(BUS);}
33 cpu_cluster		{yylval.number=CPU_CLUSTER; return(BUS);}
34 cpu			{yylval.number=CPU; return(BUS);}
35 domain			{yylval.number=DOMAIN; return(BUS);}
36 generic			{yylval.number=GENERIC; return(BUS);}
37 mmio			{yylval.number=MMIO; return(BUS);}
38 spi			{yylval.number=SPI; return(BUS);}
39 usb			{yylval.number=USB; return(BUS);}
40 gpio			{yylval.number=GPIO; return(BUS);}
41 mdio			{yylval.number=MDIO; return(BUS);}
42 irq			{yylval.number=IRQ; return(RESOURCE);}
43 drq			{yylval.number=DRQ; return(RESOURCE);}
44 io			{yylval.number=IO; return(RESOURCE);}
45 inherit			{return(INHERIT);}
46 subsystemid		{return(SUBSYSTEMID);}
47 end			{return(END);}
48 smbios_slot_desc	{return(SLOT_DESC);}
49 smbios_dev_info		{return(SMBIOS_DEV_INFO);}
50 =			{return(EQUALS);}
51 \|			{return(PIPE);}
52 0x[0-9a-fA-F.]+		{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
53 [0-9.]+			{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
54 [0-9a-fA-F.]+		{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
55 \"\"[^\"]+\"\"		{yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
56 \"[^\"]+\"		{yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
57 [^ \n\t]+		{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
58 %%
59