aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Logic.icl11
-rw-r--r--request.php2
2 files changed, 11 insertions, 2 deletions
diff --git a/Logic.icl b/Logic.icl
index 97d8df5..c678248 100644
--- a/Logic.icl
+++ b/Logic.icl
@@ -117,7 +117,16 @@ where
show opt (B b) = show opt b
show opt (Atom a) = show opt a
show opt (App1 op e) = show opt op +++ show opt e
- show opt (App2 e1 op e2) = show opt e1 +++ " " +++ show opt op +++ " " +++ show opt e2
+ show opt (App2 e1 op e2) = if needs_l "(" "" +++
+ show opt e1 +++
+ if needs_l ")" "" +++
+ " " +++ show opt op +++ " " +++
+ if needs_r "(" "" +++
+ show opt e2 +++
+ if needs_r ")" ""
+ where
+ needs_l = needs_parentheses_left (App2 e1 op e2)
+ needs_r = needs_parentheses_right (App2 e1 op e2)
instance == Op1
where
diff --git a/request.php b/request.php
index 2866ada..9dfb4bc 100644
--- a/request.php
+++ b/request.php
@@ -36,7 +36,7 @@ if ($expressions == [])
die('Not enough expressions requested');
foreach ($expressions as $k => $e)
- if (preg_match('/[^a-zA-Z\|\&~\-><01 ]/', $e))
+ if (preg_match('/[^a-zA-Z\|\&~\-><01 \(\)]/', $e))
die('Forbidden character in expression ' . $e);
$expressions = array_map('escapeshellarg', $expressions);