Merge pull request #4 from MichaHoffmann/fix_compilation_errors_on_macos

add compile workflow
This commit is contained in:
Michael Hoffmann
2021-07-01 02:24:31 +02:00
committed by GitHub
626 changed files with 5686 additions and 6 deletions

28
.github/workflows/build.yaml vendored Normal file
View File

@@ -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

5
.gitignore vendored
View File

@@ -7,3 +7,8 @@ log.html
tree-sitter-hcl.wasm
.env
.DS_Store
fuzz/fuzzer
fuzz/*.o
fuzz/*.a
fuzz/fuzz-*.log

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "fuzz/tree-sitter"]
path = fuzz/tree-sitter
url = https://github.com/tree-sitter/tree-sitter.git

View File

@@ -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:

View File

@@ -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

View File

@@ -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

30
fuzz/Makefile Normal file
View File

@@ -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.

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -0,0 +1,19 @@
// commenõÜßœ<C39F>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
}
}

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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${} %%{}"}

View File

@@ -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.

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -0,0 +1,23 @@
// comment
#? comment
/*
comment
*/
resource_1 "strlit1" "strlit2" {
attr1 = "val1"
tupl1 = [ 1, 2, 3.4, Þ™<C39E>Œ" ]
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.

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
}
}

View File

@@ -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™Œ<EFBFBD>Š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
}
}

View File

@@ -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