git.delta.rocks / jrsonnet / refs/commits / b9857aed17e5

difftreelog

style rename ast file_name to source

Yaroslav Bolyukin2022-11-09parent: #87a7e44.patch.diff
in: master

4 files changed

modifiedcrates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth
63use std::{63use std::{
64 any::Any,64 any::Any,
65 cell::{Ref, RefCell, RefMut},65 cell::{Ref, RefCell, RefMut},
66 collections::HashMap,
67 fmt::{self, Debug},66 fmt::{self, Debug},
68 path::Path,67 path::Path,
69};68};
7069
71pub use ctx::*;70pub use ctx::*;
72pub use dynamic::*;71pub use dynamic::*;
73use error::{Error::*, LocError, Result, ResultExt};72pub use error::{Error::*, LocError, Result, ResultExt};
74pub use evaluate::*;73pub use evaluate::*;
75use function::{CallLocation, TlaArg};74use function::CallLocation;
76use gc::{GcHashMap, TraceBox};75use gc::{GcHashMap, TraceBox};
77use hashbrown::hash_map::RawEntryMut;76use hashbrown::hash_map::RawEntryMut;
78pub use import::*;77pub use import::*;
305 jrsonnet_parser::parse(304 jrsonnet_parser::parse(
306 code,305 code,
307 &ParserSettings {306 &ParserSettings {
308 file_name: file_name.clone(),307 source: file_name.clone(),
309 },308 },
310 )309 )
311 .map_err(|e| ImportSyntaxError {310 .map_err(|e| ImportSyntaxError {
411 let parsed = jrsonnet_parser::parse(410 let parsed = jrsonnet_parser::parse(
412 &code,411 &code,
413 &ParserSettings {412 &ParserSettings {
414 file_name: source.clone(),413 source: source.clone(),
415 },414 },
416 )415 )
417 .map_err(|e| ImportSyntaxError {416 .map_err(|e| ImportSyntaxError {
modifiedcrates/jrsonnet-parser/src/lib.rsdiffbeforeafterboth
14pub use source::{Source, SourceDirectory, SourceFile, SourcePath, SourcePathT, SourceVirtual};14pub use source::{Source, SourceDirectory, SourceFile, SourcePath, SourcePathT, SourceVirtual};
1515
16pub struct ParserSettings {16pub struct ParserSettings {
17 pub file_name: Source,17 pub source: Source,
18}18}
1919
20macro_rules! expr_bin {20macro_rules! expr_bin {
230 pub rule var_expr(s: &ParserSettings) -> Expr230 pub rule var_expr(s: &ParserSettings) -> Expr
231 = n:id() { expr::Expr::Var(n) }231 = n:id() { expr::Expr::Var(n) }
232 pub rule id_loc(s: &ParserSettings) -> LocExpr232 pub rule id_loc(s: &ParserSettings) -> LocExpr
233 = a:position!() n:id() b:position!() { LocExpr(Rc::new(expr::Expr::Str(n)), ExprLocation(s.file_name.clone(), a as u32,b as u32)) }233 = a:position!() n:id() b:position!() { LocExpr(Rc::new(expr::Expr::Str(n)), ExprLocation(s.source.clone(), a as u32,b as u32)) }
234 pub rule if_then_else_expr(s: &ParserSettings) -> Expr234 pub rule if_then_else_expr(s: &ParserSettings) -> Expr
235 = cond:ifspec(s) _ keyword("then") _ cond_then:expr(s) cond_else:(_ keyword("else") _ e:expr(s) {e})? {Expr::IfElse{235 = cond:ifspec(s) _ keyword("then") _ cond_then:expr(s) cond_else:(_ keyword("else") _ e:expr(s) {e})? {Expr::IfElse{
236 cond,236 cond,
293 use UnaryOpType::*;293 use UnaryOpType::*;
294 rule expr(s: &ParserSettings) -> LocExpr294 rule expr(s: &ParserSettings) -> LocExpr
295 = precedence! {295 = precedence! {
296 start:position!() v:@ end:position!() { LocExpr(Rc::new(v), ExprLocation(s.file_name.clone(), start as u32, end as u32)) }296 start:position!() v:@ end:position!() { LocExpr(Rc::new(v), ExprLocation(s.source.clone(), start as u32, end as u32)) }
297 --297 --
298 a:(@) _ binop(<"||">) _ b:@ {expr_bin!(a Or b)}298 a:(@) _ binop(<"||">) _ b:@ {expr_bin!(a Or b)}
299 --299 --
351 let len = str.len();351 let len = str.len();
352 LocExpr(352 LocExpr(
353 Rc::new(Expr::Str(str)),353 Rc::new(Expr::Str(str)),
354 ExprLocation(settings.file_name.clone(), 0, len as u32),354 ExprLocation(settings.source.clone(), 0, len as u32),
355 )355 )
356}356}
357357
368 parse(368 parse(
369 $s,369 $s,
370 &ParserSettings {370 &ParserSettings {
371 file_name: Source::new_virtual("<test>".into(), IStr::empty()),371 source: Source::new_virtual("<test>".into(), IStr::empty()),
372 },372 },
373 )373 )
374 .unwrap()374 .unwrap()
719 let file_name = Source::new_virtual("<test>".into(), IStr::empty());719 let file_name = Source::new_virtual("<test>".into(), IStr::empty());
720 let expr = parse(720 let expr = parse(
721 "{} { local x = 1, x: x } + {}",721 "{} { local x = 1, x: x } + {}",
722 &ParserSettings { file_name },722 &ParserSettings { source: file_name },
723 )723 )
724 .unwrap();724 .unwrap();
725 assert_eq!(725 assert_eq!(
modifiedcrates/jrsonnet-stdlib/build.rsdiffbeforeafterboth
7 let parsed = parse(7 let parsed = parse(
8 include_str!("./src/std.jsonnet"),8 include_str!("./src/std.jsonnet"),
9 &ParserSettings {9 &ParserSettings {
10 file_name: Source::new_virtual(10 source: Source::new_virtual("<std>".into(), include_str!("./src/std.jsonnet").into()),
11 "<std>".into(),
12 include_str!("./src/std.jsonnet").into(),
13 ),
modifiedcrates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth
215 pub path_resolver: PathResolver,215 pub path_resolver: PathResolver,
216}216}
217217
218pub fn extvar_source(name: &str, code: impl Into<IStr>) -> Source {218fn extvar_source(name: &str, code: impl Into<IStr>) -> Source {
219 let source_name = format!("<extvar:{}>", name);219 let source_name = format!("<extvar:{}>", name);
220 Source::new_virtual(source_name.into(), code.into())220 Source::new_virtual(source_name.into(), code.into())
221}221}
277 let parsed = jrsonnet_parser::parse(277 let parsed = jrsonnet_parser::parse(
278 &code,278 &code,
279 &jrsonnet_parser::ParserSettings {279 &jrsonnet_parser::ParserSettings {
280 file_name: source.clone(),280 source: source.clone(),
281 },281 },
282 )282 )
283 .map_err(|e| ImportSyntaxError {283 .map_err(|e| ImportSyntaxError {