difftreelog
style rename ast file_name to source
in: master
4 files changed
crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth63use 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};706971pub 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 {crates/jrsonnet-parser/src/lib.rsdiffbeforeafterboth14pub use source::{Source, SourceDirectory, SourceFile, SourcePath, SourcePathT, SourceVirtual};14pub use source::{Source, SourceDirectory, SourceFile, SourcePath, SourcePathT, SourceVirtual};151516pub struct ParserSettings {16pub struct ParserSettings {17 pub file_name: Source,17 pub source: Source,18}18}191920macro_rules! expr_bin {20macro_rules! expr_bin {230 pub rule var_expr(s: &ParserSettings) -> Expr230 pub rule var_expr(s: &ParserSettings) -> Expr231 = 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) -> LocExpr233 = 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) -> Expr235 = 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) -> LocExpr295 = 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}357357368 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!(crates/jrsonnet-stdlib/build.rsdiffbeforeafterboth7 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 ),crates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth215 pub path_resolver: PathResolver,215 pub path_resolver: PathResolver,216}216}217217218pub 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 {