Skip to content

Commit 9a8fa22

Browse files
committed
Merge branch 'chrivers/fix-bool-parsing'
2 parents 6664b7b + 009da11 commit 9a8fa22

File tree

6 files changed

+24
-15
lines changed

6 files changed

+24
-15
lines changed

crates/dregistry/src/source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ impl DockerSource {
4343
if let Some(ns) = namespace {
4444
format!("{ns}/{}", &self.repository)
4545
} else {
46-
self.repository.to_string()
46+
self.repository.clone()
4747
}
4848
}
4949

crates/raptor-parser/src/lexer.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ pub enum Token {
5252
#[token("@")]
5353
At,
5454

55+
#[token("true")]
56+
True,
57+
58+
#[token("false")]
59+
False,
60+
5561
#[regex("[a-zA-Z_][^\\]@/. \n\t\",=:{}\\[-]*")]
5662
Bareword,
5763

@@ -117,6 +123,8 @@ impl Token {
117123
Self::Minus => "-",
118124
Self::Dollar => "$",
119125
Self::At => "@",
126+
Self::True => "true",
127+
Self::False => "false",
120128
Self::Bareword => "<bareword>",
121129
Self::Number => "<number>",
122130
Self::Newline => "\\n",
@@ -142,6 +150,8 @@ impl Token {
142150
Self::Minus => "'-' (minus)",
143151
Self::Dollar => "'$' (dollar)",
144152
Self::At => "'@' (at)",
153+
Self::True => "true (keyword)",
154+
Self::False => "false (keyword)",
145155
Self::Bareword => "<bareword>",
146156
Self::Number => "<number>",
147157
Self::Newline => "\\n (newline)",

crates/raptor-parser/src/parser.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -492,20 +492,19 @@ impl<'src> Parser<'src> {
492492
Ok(Value::from_serialize(value))
493493
}
494494
Token::Number => {
495-
self.expect(&Token::Number)?;
495+
self.next()?;
496496
Ok(Value::from_serialize(self.token().parse::<i64>()?))
497497
}
498-
Token::Bareword => {
499-
self.expect(&Token::Bareword)?;
500-
let value = match self.token() {
501-
"true" => true,
502-
"false" => false,
503-
_ => return Err(ParseError::Expected("boolean")),
504-
};
505-
Ok(Value::from_serialize(value))
498+
Token::True => {
499+
self.next()?;
500+
Ok(Value::from_serialize(true))
501+
}
502+
Token::False => {
503+
self.next()?;
504+
Ok(Value::from_serialize(false))
506505
}
507506

508-
_ => Err(ParseError::Expected("value4")),
507+
_ => Err(ParseError::Expected("value (list, map, number, or bool)")),
509508
}
510509
}
511510

src/make/maker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl<'a> Maker<'a> {
3838

3939
pub fn add_links(&self, loader: &Loader) {
4040
for (name, link) in &self.make.raptor.link {
41-
loader.add_package(name.to_string(), Utf8PathBuf::from(&link.source));
41+
loader.add_package(name.clone(), Utf8PathBuf::from(&link.source));
4242
}
4343
}
4444

src/program/loader.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ impl Loader<'_> {
7373
ModuleRoot::Package(pkg) => {
7474
let package = self
7575
.get_package(pkg)
76-
.ok_or_else(|| RaptorError::PackageNotFound(pkg.to_string(), origin.clone()))?;
76+
.ok_or_else(|| RaptorError::PackageNotFound(pkg.clone(), origin.clone()))?;
7777
package.join(end)
7878
}
7979
};

tests/parse.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use minijinja::{Value, context};
77
use pretty_assertions::assert_eq;
88

99
use raptor::RaptorResult;
10-
use raptor::dsl::Item;
11-
use raptor::{dsl::Program, program::Loader};
10+
use raptor::dsl::{Item, Program};
11+
use raptor::program::Loader;
1212
use raptor_parser::ast::{
1313
Chown, FromSource, IncludeArg, InstEnvAssign, InstFrom, InstMkdir, InstMount, Instruction,
1414
MountOptions, MountType, Origin,

0 commit comments

Comments
 (0)