Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ extension dotnet {
container = "mcr.microsoft.com/dotnet/sdk:8.0.101"
defaults {
configuration1 = var.map.toto
configuration2 = var.map.?titi
configuration2 = var.map.["titi"]
configuration3 = replace("toto titi", "toto", "titi")
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/Terrabuild.Configuration.Tests/Workspace.fs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ let parseWorkspace2() =
Variables = None
Script = None
Defaults = Map [ "configuration1", Expr.Function (Function.Item, [Expr.Variable "var.map"; Expr.String "toto"])
"configuration2", Expr.Function (Function.TryItem, [Expr.Variable "var.map"; Expr.String "titi"])
"configuration2", Expr.Function (Function.Item, [Expr.Variable "var.map"; Expr.String "titi"])
"configuration3", Expr.Function (Function.Replace, [Expr.String "toto titi"; Expr.String "toto"; Expr.String "titi"]) ] |> Some }
let extDocker =
{ Container = None
Expand Down
8 changes: 0 additions & 8 deletions src/Terrabuild.Expressions.Tests/Deps.fs
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,6 @@ let ``field dependencies``() =
let deps = Dependencies.find expr
deps |> shouldEqual expected

[<Test>]
let ``maybe field dependencies``() =
let expr = Expr.Function (Function.TryItem, [Expr.Variable "var.toto"; Expr.String "titi"])
let expected = Set [ "var.toto" ]

let deps = Dependencies.find expr
deps |> shouldEqual expected

[<Test>]
let ``function dependencies``() =
let expr = Expr.Function (Function.Plus, [Expr.Variable "toto"; Expr.Variable "titi"])
Expand Down
26 changes: 0 additions & 26 deletions src/Terrabuild.Expressions.Tests/Eval.fs
Original file line number Diff line number Diff line change
Expand Up @@ -143,19 +143,6 @@ let listItem() =
eval context (Expr.Function (Function.Item, [ Expr.Variable "tagada"; Expr.Number 1]))
result |> should equal expected

[<Test>]
let listTryItem() =
let expected = Value.Nothing

let context = { evaluationContext
with Data = Map [
"tagada", Value.List [ Value.String "toto"; Value.Number 42 ]
] }

let result =
eval context (Expr.Function (Function.TryItem, [ Expr.Variable "tagada"; Expr.Number 3]))
result |> should equal expected

[<Test>]
let mapItem() =
let expected = Value.Number 42
Expand All @@ -169,19 +156,6 @@ let mapItem() =
eval context (Expr.Function (Function.Item, [ Expr.Variable "tagada"; Expr.String "toto" ]))
result |> should equal expected

[<Test>]
let mapTryItem() =
let expected = Value.Nothing

let context = { evaluationContext
with Data = Map [
"tagada", Value.Map (Map [ "toto", Value.Number 42 ])
] }

let result =
eval context (Expr.Function (Function.TryItem, [ Expr.Variable "tagada"; Expr.String "titi" ]))
result |> should equal expected

[<Test>]
let equalValue() =
let expected = Value.Bool true
Expand Down
10 changes: 0 additions & 10 deletions src/Terrabuild.Expressions/Eval.fs
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,6 @@ let rec eval (context: EvaluationContext) (expr: Expr) =
| Some value -> value
| _ -> raiseInvalidArg $"Out of range index {index}"

| Function.TryItem, [Value.Map map; Value.String key] ->
match map |> Map.tryFind key with
| Some value -> value
| _ -> Value.Nothing

| Function.TryItem, [Value.List list; Value.Number index] ->
match list |> List.tryItem index with
| Some value -> value
| _ -> Value.Nothing

| Function.Coalesce, [leftValue; rightValue] ->
match leftValue with
| Value.Nothing -> rightValue
Expand Down
1 change: 0 additions & 1 deletion src/Terrabuild.Expressions/Expr.fs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ type Function =
| Format
| ToString
| Item
| TryItem
| Coalesce
| Ternary
| Equal
Expand Down
4 changes: 2 additions & 2 deletions src/Terrabuild.Lang.Tests/Lang.fs
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ let checkValidSyntax() =
[Expr.Variable "local.var"; Expr.Number 42])])]) }
{ Attribute.Name = "data"; Value = Expr.Variable "var.titi" }
{ Attribute.Name = "data_index"; Value = Expr.Function (Function.Item, [Expr.Variable "var.toto"; Expr.Number 42]) }
{ Attribute.Name = "data_maybe_index"; Value = Expr.Function (Function.TryItem, [Expr.Variable "var.toto"; Expr.Number 42]) }
{ Attribute.Name = "data_index_name"; Value = Expr.Function (Function.Item, [Expr.Variable "var.toto"; Expr.String "field"]) }
{ Attribute.Name = "data_maybe_index_name"; Value = Expr.Function (Function.TryItem, [Expr.Variable "var.toto"; Expr.String "field"]) }
{ Attribute.Name = "data_item"; Value = Expr.Function (Function.Item, [Expr.Variable "var.toto"; Expr.String "field"]) }

{ Attribute.Name = "bool_equal"; Value = Expr.Function (Function.Equal, [Expr.Number 42; Expr.Number 666]) }
{ Attribute.Name = "bool_not_equal"; Attribute.Value = Expr.Function (Function.NotEqual, [Expr.Number 42; Expr.Number 666]) }
{ Attribute.Name = "bool_and"; Value = Expr.Function (Function.And, [Expr.Bool true; Expr.Bool false]) }
Expand Down
3 changes: 1 addition & 2 deletions src/Terrabuild.Lang.Tests/TestFiles/Success_Syntax
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ locals {

data = var.titi
data_index = var.toto.42
data_maybe_index = var.toto.?42
data_index_name = var.toto.field
data_maybe_index_name = var.toto.?field
data_item = var.toto.["field"]

bool_equal = 42 == 666
bool_not_equal = 42 != 666
Expand Down
12 changes: 6 additions & 6 deletions src/Terrabuild.Lang/Gen/Lexer.fs
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ let trans : uint16[] array =
(* State 18 *)
[| 65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;|];
(* State 19 *)
[| 48us;48us;48us;48us;48us;48us;48us;48us;48us;44us;45us;48us;48us;46us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;44us;30us;39us;38us;48us;48us;36us;48us;27us;28us;34us;33us;31us;32us;21us;35us;43us;43us;43us;43us;43us;43us;43us;43us;43us;43us;22us;48us;48us;29us;48us;20us;41us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;25us;48us;26us;42us;48us;48us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;23us;37us;24us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;47us;|];
[| 48us;48us;48us;48us;48us;48us;48us;48us;48us;44us;45us;48us;48us;46us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;44us;30us;39us;38us;48us;48us;36us;48us;27us;28us;34us;33us;31us;32us;20us;35us;43us;43us;43us;43us;43us;43us;43us;43us;43us;43us;22us;48us;48us;29us;48us;21us;41us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;25us;48us;26us;42us;48us;48us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;40us;23us;37us;24us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;48us;47us;|];
(* State 20 *)
[| 65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;70us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;|];
[| 65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;70us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;|];
(* State 21 *)
[| 65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;69us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;|];
(* State 22 *)
Expand Down Expand Up @@ -175,25 +175,25 @@ let trans : uint16[] array =
(* State 70 *)
[| 65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;65535us;|];
|]
let actions : uint16[] = [|65535us;0us;6us;4us;6us;6us;6us;6us;5us;3us;2us;1us;0us;65535us;0us;2us;1us;2us;0us;65535us;1us;3us;4us;5us;6us;7us;8us;9us;10us;12us;19us;14us;15us;16us;17us;18us;20us;21us;22us;23us;24us;30us;30us;26us;27us;28us;30us;29us;30us;28us;65535us;26us;26us;26us;24us;24us;65535us;24us;24us;24us;65535us;24us;24us;65535us;25us;24us;26us;13us;11us;2us;0us;|]
let actions : uint16[] = [|65535us;0us;6us;4us;6us;6us;6us;6us;5us;3us;2us;1us;0us;65535us;0us;2us;1us;2us;0us;65535us;3us;2us;4us;5us;6us;7us;8us;9us;10us;12us;19us;14us;15us;16us;17us;18us;20us;21us;22us;23us;24us;30us;30us;26us;27us;28us;30us;29us;30us;28us;65535us;26us;26us;26us;24us;24us;65535us;24us;24us;24us;65535us;24us;24us;65535us;25us;24us;26us;13us;11us;1us;0us;|]
let _fslex_tables = FSharp.Text.Lexing.UnicodeTables.Create(trans,actions)
let rec _fslex_dummy () = _fslex_dummy()
// Rule token
and token lexerMode lexbuf =
match _fslex_tables.Interpret(19,lexbuf) with
| 0 -> (
# 46 "Lexer.fsl"
DOUBLE_QUESTION
DOT_LSQBRACKET
# 187 "Gen/Lexer.fs"
)
| 1 -> (
# 47 "Lexer.fsl"
QUESTION
DOUBLE_QUESTION
# 192 "Gen/Lexer.fs"
)
| 2 -> (
# 48 "Lexer.fsl"
DOT_QUESTION
QUESTION
# 197 "Gen/Lexer.fs"
)
| 3 -> (
Expand Down
Loading