about summary refs log tree commit diff
path: root/users/glittershark/achilles/src/parser
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2021-03-19T23·43-0400
committerglittershark <grfn@gws.fyi>2021-03-20T20·20+0000
commitb1c4b84dbac9073e5f4b1dd7c5e0b7f549a32200 (patch)
tree84b982b90d7fcd63ea3952d44c45747723de85d3 /users/glittershark/achilles/src/parser
parentd031ec0234d1b9913667ee87ce9cd9f3e8dfe301 (diff)
chore(gs/achilles): Integrate with the depot build r/2291
Get achilles building in Nix as part of the depot's build tree. This
involved making it work with stable rust, since the depot only exposes
stable rust to sub-packages, which turned out to be fairly
straightforward.

Also adds libffi as a new top-level expose, since it's required to build achilles

Change-Id: I5f6dedb26c0b81ec258aedde1973e74903c07ece
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2612
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Diffstat (limited to 'users/glittershark/achilles/src/parser')
-rw-r--r--users/glittershark/achilles/src/parser/expr.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/users/glittershark/achilles/src/parser/expr.rs b/users/glittershark/achilles/src/parser/expr.rs
index 12c55df02b80..99c8018fd00c 100644
--- a/users/glittershark/achilles/src/parser/expr.rs
+++ b/users/glittershark/achilles/src/parser/expr.rs
@@ -165,9 +165,16 @@ named!(bool_(&str) -> Literal, alt!(
 ));
 
 fn string_internal(i: &str) -> nom::IResult<&str, Cow<'_, str>, nom::error::Error<&str>> {
-    let (s, rem) = i
-        .split_once('"')
-        .ok_or_else(|| nom::Err::Error(nom::error::Error::new(i, nom::error::ErrorKind::Tag)))?;
+    // TODO(grfn): use String::split_once when that's stable
+    let (s, rem) = if let Some(pos) = i.find('"') {
+        (&i[..pos], &i[(pos + 1)..])
+    } else {
+        return Err(nom::Err::Error(nom::error::Error::new(
+            i,
+            nom::error::ErrorKind::Tag,
+        )));
+    };
+
     Ok((rem, Cow::Borrowed(s)))
 }