about summary refs log tree commit diff
path: root/lr.c
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2015-10-22 22:14:13 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2015-10-22 22:14:13 +0200
commit2325b0bdda161b12cee079089171d13ec8723bff (patch)
treeef43c8d661f7cd23d7a3ef6eac72da3ebe769c5f /lr.c
parentc61f7ad5fba9d1c8a62008b8bd3fd87f1310bf4e (diff)
downloadlr-2325b0bdda161b12cee079089171d13ec8723bff.tar.gz
lr-2325b0bdda161b12cee079089171d13ec8723bff.tar.xz
lr-2325b0bdda161b12cee079089171d13ec8723bff.zip
add ( )
Diffstat (limited to 'lr.c')
-rw-r--r--lr.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/lr.c b/lr.c
index 8db5916..6e7159b 100644
--- a/lr.c
+++ b/lr.c
@@ -10,6 +10,7 @@ TODO:
 - dynamic columns? i'd rather not (easy to compute for all but names...)
 - error handling? keep going
 - avoid stat in recurse
+- multiple -t
 */
 
 #define _XOPEN_SOURCE 700
@@ -165,6 +166,7 @@ parse_op()
 }
 
 struct expr *parse_cmp();
+struct expr *parse_or();
 
 struct expr *
 parse_inner()
@@ -179,10 +181,13 @@ parse_inner()
 		not->op = EXPR_NOT;
 		not->a.expr = e;
 		return not;
+	} else if (token("(")) {
+		struct expr *e = parse_or();
+		if (token(")"))
+			return e;
+		return 0; // TODO ERROR;
 	} else
 		return 0;
-	// TODO negation
-	// TODO ( expr )
 }
 
 struct expr *
@@ -354,7 +359,7 @@ readlin(const char *p, const char *alt)
 	if (r < 0)
 		return alt;
 	b[r] = 0;
-	return readlin(b, b);
+	return b;
 }
 
 #define CMP(a, b) if ((a) == (b)) break; else if ((a) < (b)) return -1; else return 1