add compile workflow
add fuzzing instrumentation
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
name: build
|
||||
|
||||
on:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
compile:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||
compiler: [gcc, clang++]
|
||||
|
||||
name: compile
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- if: matrix.os == 'windows-latest' && matrix.compiler == 'clang++'
|
||||
uses: KyleMayes/install-llvm-action@v1
|
||||
with:
|
||||
version: "11.0"
|
||||
|
||||
- if: matrix.os == 'windows-latest' && matrix.compiler == 'gcc'
|
||||
uses: egor-tensin/setup-mingw@v2
|
||||
|
||||
- name: build
|
||||
run: ${{ matrix.compiler }} -o scanner.o -I./src -c src/scanner.cc
|
||||
@@ -7,3 +7,8 @@ log.html
|
||||
tree-sitter-hcl.wasm
|
||||
.env
|
||||
.DS_Store
|
||||
|
||||
fuzz/fuzzer
|
||||
fuzz/*.o
|
||||
fuzz/*.a
|
||||
fuzz/fuzz-*.log
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "fuzz/tree-sitter"]
|
||||
path = fuzz/tree-sitter
|
||||
url = https://github.com/tree-sitter/tree-sitter.git
|
||||
@@ -1,5 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 0.3.2 - not yet released
|
||||
|
||||
fix:
|
||||
* add a build step to CI to make sure the scanner is compilable
|
||||
|
||||
## 0.3.1 - 2021-06-30
|
||||
|
||||
fix:
|
||||
|
||||
@@ -28,7 +28,7 @@ Total parses: 1892; successful parses: 1892; failed parses: 0; success percentag
|
||||
|
||||
## Fuzzing
|
||||
|
||||
The directory `fuzz/crashers` contains a set of crashes that were found with fuzzing. To fuzz the parser i used the instrumentation of [tree-sitter](https://github.com/tree-sitter/tree-sitter/tree/master/test/fuzz)
|
||||
The directory `fuzz/crashers` contains a set of crashes that were found with fuzzing.
|
||||
|
||||
## Todo
|
||||
|
||||
@@ -39,8 +39,8 @@ The directory `fuzz/crashers` contains a set of crashes that were found with fuz
|
||||
* [x] add heredoc templates
|
||||
* [ ] fuzzing
|
||||
* [x] start with fuzzing the parser
|
||||
* [ ] upload fuzzing instrumentation
|
||||
* [x] upload fuzzing instrumentation
|
||||
* [ ] document fuzzing process
|
||||
* [ ] quality
|
||||
* [ ] add CI job that ensures the parser builds on different plattforms
|
||||
* [x] add CI job that ensures the parser builds on different plattforms
|
||||
* [ ] add CI job that parses crashers that were found during fuzzing
|
||||
|
||||
@@ -33,6 +33,11 @@ resource_1 "strlit1" "strlit2" {
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
func_of_object = func({
|
||||
"foo": 2,
|
||||
bar: 1,
|
||||
fizz: buzz,
|
||||
})
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
FUZZFLAGS=-fsanitize=fuzzer,address,undefined
|
||||
|
||||
JOBS=4
|
||||
WORKERS=4
|
||||
|
||||
.PHONY: fuzz
|
||||
fuzz: fuzzer hcl.dict
|
||||
UBSAN="print_stacktrace=1:halt_on_error=1:symbolize=1" ASAN_OPTIONS="quarantine_size_mb=10:detect_leaks=1:symbolize=1" ./fuzzer -jobs=${JOBS} -workers=${WORKERS} -dict=hcl.dict corpus/
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf tree-sitter
|
||||
rm fuzzer parser.o scanner.o libtree-sitter.a
|
||||
|
||||
fuzzer: parser.o scanner.o libtree-sitter.a
|
||||
clang++ -o fuzzer ${FUZZFLAGS} -std=c++11 tree-sitter/test/fuzz/fuzzer.cc -Itree-sitter/lib scanner.o parser.o libtree-sitter.a
|
||||
|
||||
scanner.o: ../src/scanner.cc
|
||||
clang++ -o scanner.o ${FUZZFLAGS} -std=c++11 -I../src -c ../src/scanner.cc
|
||||
|
||||
parser.o: ../src/parser.c
|
||||
clang -o parser.o ${FUZZFLAGS} -std=c99 -I../src -c ../src/parser.c
|
||||
|
||||
hcl.dict:
|
||||
tree-sitter/scripts
|
||||
|
||||
libtree-sitter.a:
|
||||
make -C tree-sitter
|
||||
cp tree-sitter/libtree-sitter.a .
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
// comme
|
||||
t#n comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
.. }
|
||||
for2 = [ ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ)}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestad_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
ame
|
||||
t#n comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
.. }
|
||||
for2 = [ ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
.. }
|
||||
for2 = [ ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ)}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestad_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
ame
|
||||
t#n comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
.. }
|
||||
for2 = [ ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒttr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 =")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
aŒtr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
att ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFF \n"
|
||||
esá2 = "$${} %%{!}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix commond2 -${func("bar"):}"
|
||||
tpl3 == 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF225\uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,46 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, 2, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 = false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k => v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 = { for v in var.list : v => v }
|
||||
for6 = [ for v in var.list : v if v < 3 ]
|
||||
func1 = is_number("123")
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")}"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
= <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }"!}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 = false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", " ",a"b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k => v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 = { for v in var.list : v => v }
|
||||
for6 = [ for v in var.list : v if v < 3 ]
|
||||
func1 = is_number("123")
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
for v in var.list : v => v }
|
||||
for6 = [ for v in var.list : v if v < 3 ]
|
||||
func1 = is_number("123")
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")}"
|
||||
tp.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
||||
// commen’õÜßœ�’’ent
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz"# }
|
||||
)
|
||||
cond2( =1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uF2e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
reuo
|
||||
rsce_1 "sr"1it tl"stpl3 = "prefix-${func("nested-${var.bar}")m"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
su = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 ="$ ${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar"):}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")m"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112)m"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
su = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 ="$ ${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar"):}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")m"
|
||||
tpl4 = <<EOF
|
||||
pr
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.11[E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k => v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 = { for v in var.list : v >} =
|
||||
v for6 = [ for v in var.list : v if v < 3 ]
|
||||
func1 = is_number("123")
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc4 = "$${ "prefix-${func("nested-${var.bar}")}"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" ]
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
splat1 = tupl$${ "prefix-${func("nested-${var.bar}")}"{x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
// comment
|
||||
#? comœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, 2, 3.4, "foo" ]
|
||||
tupl2!== []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
\" tUF\F\1 1FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${fun+12
|
||||
2
|
||||
attr2 = 2.112
|
||||
àßßßž‹‹†3 = 2.112e-12
|
||||
attr4 = 2.112e+06
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 4.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
Šresource_1 "strlit1" "stpl4 = "prefix-${func("nested-${var.bal4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr0 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 1.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,43 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
4upl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 = false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k,0v in var.map : k => v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 = { for v in var.list : v => v }
|
||||
for6 = [ for v in var.list : v if v < 3 ]
|
||||
func = is_numbe,("123")
|
||||
cond1 = (1 z= 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF12FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl2 = "prefix-${var.bar}"
|
||||
tplprefix-${func("bar")}"
|
||||
uple.*. tpl3 = "prefix-${func("nested-${var.bar}")}"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func...oo${ var.bar}")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x${} %%{}"}
|
||||
@@ -0,0 +1,35 @@
|
||||
// comment
|
||||
# comlse
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k => v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 = { f;or v in var.list : v >} =
|
||||
v for6 = [ for v iËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { f.o = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
(splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => iEOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,32 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
sp = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")}"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resourc e_1 +"strlit1" "strlit2" {
|
||||
{
|
||||
attr1 = 2
|
||||
attr2sc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
e_1 +"strlit1" "strlit2" {
|
||||
{
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attz" }
|
||||
)
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bal4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_2ce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,32 @@
|
||||
// comme
|
||||
t#n comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
.. }
|
||||
for2 = [ ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ)}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
ame
|
||||
t#n comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
.. }
|
||||
for2 = [ ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒttr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoupl2 = [ ËÓßÍ, 2.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = nu// comm[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
fllor2
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
// comment
|
||||
# comment
|
||||
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/*
|
||||
comment
|
||||
*/
|
||||
|
||||
re.soupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
attr5 = 2.112 splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { forsplat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => iEOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
re.soupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k => v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 = { for v in var.list : v >} =
|
||||
v for6 = [ for v iËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => iEOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
// comment
|
||||
#? comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, 2, 3.4, Þ™�Œ" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 ! = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-$ attr5 = 2.112E+12
|
||||
attr6 = 4.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,49 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 -${func("bar"):}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")m"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
rEsource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, 2, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null1 = null
|
||||
bool1 = true
|
||||
bool2 = false
|
||||
splat1 = tuple.*.foo.bar[0]
|
||||
splat2 = tuple[*].foo.bar[0]
|
||||
for1 = { for i, v in ["a", "a", "b"] : v => i... }
|
||||
for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k =>// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoual1"
|
||||
tupl1 = [ 1// comment
|
||||
#? , ÎÏ 3.4, v }
|
||||
for4 = [ for v in var.list : v ]
|
||||
for5 "foo = { for2 = [ for k, v in var.map : "${k}-${v}" ]
|
||||
for3 = { for k, v in var.map : k =>// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoual1"
|
||||
tupl1 = [ 1 v in var.list : v => v }
|
||||
for6 = [ f" ]
|
||||
or v in var.list : v i tfu
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,45 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resourc e_1 +"strlit1" "strlit2" {
|
||||
{
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attz" }
|
||||
)
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
e_1 +"strlit1" "strlit2" {
|
||||
{
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attz" }
|
||||
)
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bal4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_2ce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esá2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix commond2 -${func("bar"):}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")m"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF225\uFFFF \n"
|
||||
esc2 = " %{%${$}}"
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF225\uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 -${func("bar"):}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")m"
|
||||
tpl4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,35 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, 2, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")}"
|
||||
tpl =4 <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resoupl1 = [ ËÓßÍ, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
null± = null
|
||||
bool1 = true
|
||||
bool2 -= false
|
||||
sp = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bar}")}"
|
||||
tpl4 = <<EOF
|
||||
prefixöä ${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nested_resource_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA tupl2 = []
|
||||
obÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞj1 = { foo = "baz" }
|
||||
)
|
||||
cond2 = (1 %3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tprefix comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
r™Œ�Šrce_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, ÎÏ 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
OF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+ attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 5 = 2.112E+12
|
||||
attr6 attr4 = 2.112e+12
|
||||
attrbin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// comment
|
||||
# comment
|
||||
/*
|
||||
comment
|
||||
*/
|
||||
|
||||
resource_1 "strlit1" "strlit2" {
|
||||
attr1 = "val1"
|
||||
tupl1 = [ 1, 2, 3.4, "foo" ]
|
||||
tupl2 = []
|
||||
obj1 = { foo = "baz" }
|
||||
)
|
||||
cond1 = (1 == 2) ? 1 : "foobar"
|
||||
bin1 = ((1+2)%3)*4
|
||||
esc1 = "\" \t \UFF11FF22 \uFFFF \n"
|
||||
esc2 = "$${} %%{}"
|
||||
tpl1 = "prefix-${var.bar}"
|
||||
tpl2 = "prefix-${func("bar")}"
|
||||
tpl3 = "prefix-${func("nested-${var.bal4 = <<EOF
|
||||
prefix
|
||||
${func("foo${ var.bar }")}
|
||||
suffix
|
||||
EOF
|
||||
|
||||
nestesuedor_rce_1 {
|
||||
attr1 = 2
|
||||
attr2 = 2.112
|
||||
attr3 = 2.112e-12
|
||||
attr4 = 2.112e+12
|
||||
attr5 = 2.112E+12
|
||||
attr6 = 2.112E-12
|
||||
attr7 = 0x21FF
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user