diff options
author | Antti-Juhani Kaijanaho <ajk@debian.org> | 2012-04-21 11:54:51 +0300 |
---|---|---|
committer | Antti-Juhani Kaijanaho <ajk@debian.org> | 2012-04-21 11:54:51 +0300 |
commit | a2f4080a78c84a53f9eb77a5f48bd4dea4aa3ab7 (patch) | |
tree | d763f1a3946a12ec74184e637a0262bd74d01397 | |
parent | 4238881cd78726fbcf778b336e174b70872d0a5a (diff) | |
download | dctrl-tools-a2f4080a78c84a53f9eb77a5f48bd4dea4aa3ab7.tar.gz |
Document the predicate parser's grammar in comments
Signed-off-by: Antti-Juhani Kaijanaho <ajk@debian.org>
-rw-r--r-- | debian/copyright | 2 | ||||
-rw-r--r-- | grep-dctrl/grep-dctrl.c | 32 |
2 files changed, 32 insertions, 2 deletions
diff --git a/debian/copyright b/debian/copyright index 72bb7f1..2381e3f 100644 --- a/debian/copyright +++ b/debian/copyright @@ -2,7 +2,7 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Files: * Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 - 2009, 2010, 2011 + 2009, 2010, 2011, 2012 Antti-Juhani Kaijanaho License: GPL-2+ diff --git a/grep-dctrl/grep-dctrl.c b/grep-dctrl/grep-dctrl.c index 66a0828..f7ebd05 100644 --- a/grep-dctrl/grep-dctrl.c +++ b/grep-dctrl/grep-dctrl.c @@ -1,6 +1,6 @@ /* dctrl-tools - Debian control file inspection tools Copyright © 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2010, 2011 + 2010, 2011, 2012 Antti-Juhani Kaijanaho This program is free software; you can redistribute it and/or modify @@ -502,6 +502,23 @@ static void unexpected(int tok) static struct predicate * parse_conj(struct arguments * args); + +/* prim -> TOK_LP conj TOK_RP + prim -> prim' + + prim' -> primtok + prim' -> primtok prim' + prim' -> TOK_PAT prim'' + prim' -> TOK_STR prim'' + + prim'' -> + prim'' -> primtok prim'' + + primtok -> TOK_FIELD + primtok -> TOK_ERGEX | TOK_REGEX + primtok -> TOK_ICASE | TOK_EXACT | TOK_WHOLE + primtok -> TOK_EQ | TOK_LT | TOK_LE | TOK_GE | TOK_GT +*/ static struct predicate * parse_prim(struct arguments * args) { if (peek_token(args) == TOK_LP) { @@ -637,6 +654,9 @@ failmode: return 0; } +/* neg -> TOK_NOT prim + neg -> prim +*/ static struct predicate * parse_neg(struct arguments * args) { bool neg = false; @@ -649,6 +669,9 @@ static struct predicate * parse_neg(struct arguments * args) return rv; } +/* disj -> neg + disj -> disj TOK_OR neg +*/ static struct predicate * parse_disj(struct arguments * args) { struct predicate * rv = parse_neg(args); @@ -660,6 +683,9 @@ static struct predicate * parse_disj(struct arguments * args) return rv; } +/* conj -> disj + conj -> conj TOK_AND disj +*/ static struct predicate * parse_conj(struct arguments * args) { struct predicate * rv = parse_disj(args); @@ -671,6 +697,10 @@ static struct predicate * parse_conj(struct arguments * args) return rv; } +/* predicate -> conj files + files -> + files -> TOK_STR files +*/ static void parse_predicate(struct arguments * args) { args->toks_pos = 0; |