Your keywords aren't sorted.

On Tue, Jun 7, 2011 at 12:09 PM, Rafael Sadowski <raf...@sizeofvoid.org>wrote:

> On Wed Jun 01, 2011 at 11:03:46AM +0200, Otto Moerbeek wrote:
> > On Wed, Jun 01, 2011 at 10:54:05AM +0200, Rafael Sadowski wrote:
> >
> > > Hello @tech,
> > >
> > > I hope anybody can help my with my yacc rules/grammer. I can't find
> bugs
> > > in my grammer. I think the problem is in the lexer but I have no idea,
> > > how debug it. GDB tells me: "No Source Available" for yyparse (). Any
> > > advice, how debug it? This is my first experience with YACC!
> > >
> > > Maybe any yacc/lex hacker has a minute to look over my parse.y. I am
> > > grateful for any advice. My parse.y based on ospfd and relayd.
> >
> > Run yacc with -t and set yydebug = 1 in your code. That will reveal
> > the tokens yacc sees and what it does with them.
> >
> >       -Otto
> >
>
> Thanks Otto, this helped me a lot. Now, I'm one step big forward.
>
> I found one (In my opinion) strangeness in my grammeri/rule. It is
> important to declare the TOKEN in dependence to other TOKEN?
>
> It will not work with following rule, if I change WIRELESSNAME to
> NETMASK it works file. I don't know why, what is the different between
> WIRELESSNAME and NETMASK?
>
>
> wirelessoptsl   : WIRELESSNAME STRING '{' {
>                         }
>                         | PRIORITY NUMBER optnl {
>                         }
>                         '}'
>                ;
>
>
> ### my tokes:
>
> %token NETWORK  ETHERNETNAME WIRELESSNAME
> %token BSSID CHANNEL DHCP DOMAINNAME DOMAINNAMESERVERS ERROR
> %token INCLUDE INET INTERFACE YES
> %token LLADDR MINSIGNAL NETMASK NWID NO PRIORITY RUNDOWN RUNUP
> %token UPDATEINTERVAL WEP WEPKEY
> %token WPA WPAAKMS WPACIPHERS WPAGROUPCIPHER WPAKEY
> %token  <v.string>              STRING
> %token  <v.number>              NUMBER
> %type   <v.string>              string
>
> ### my keywords:
>
>        static const struct keywords keywords[] = {
>                { "bssid",                                      BSSID },
>                { "channel",                            CHANNEL },
>                { "dhcp",                                       DHCP },
>                { "domain-name",                        DOMAINNAME },
>                { "domain-name-servers",        DOMAINNAMESERVERS },
>                { "error",                                      ERROR },
>                { "ethernet",                           ETHERNETNAME },
>                { "include",                            INCLUDE },
>                { "inet",                                       INET },
>                { "interface",                          INTERFACE },
>                { "yes",                                        YES },
>                { "lladdr",                                     LLADDR },
>                { "minsignal",                          MINSIGNAL },
>                { "netmask",                            NETMASK },
>                { "network",                            NETWORK },
>                { "nwid",                                       NWID },
>                { "no",                                         NO },
>                { "priority",                           PRIORITY },
>                { "run-down",                           RUNDOWN },
>                { "run-up",                                     RUNUP },
>                { "update_interval",            UPDATEINTERVAL },
>                { "wireless",                           WIRELESSNAME },
>                { "wep",                                        WEP},
>                { "wepkey",                                     WEPKEY},
>                { "wpa",                                        WPA},
>                { "wpaakms",                            WPAAKMS },
>                { "wpaciphers",                         WPACIPHERS },
>                { "wpagroupcipher",                     WPAGROUPCIPHER },
>                { "wpakey",                                     WPAKEY }
>        };
>        const struct keywords   *p;
>
> ### my config file (crashed with "wireless", works with "netmask"):
>
> network local {
>        ethernet home {
>                priority 23
>        }
>        ethernet work {
>                priority 23
>        }
>        wireless park {
>                priority 23
>        }
> }
>
> --
> http://www.sizeofvoid.org - raf...@sizeofvoid.org
> XMPP: z...@jabber.ccc.de
> Key fingerprint: BDDD 91E9 28CB 3A52 3E99  61B0 C359 2691 BAC6 A3B1

Reply via email to