# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. # # This def file should test most aspects of def files that makes a difference # for the autogenerated config classes. The goal is to trigger all blocks of # code in the code generators. This includes: # # - Use all legal special characters in the def file name, to ensure that those # that needs to be replaced in type names are actually replaced. # - Use the same enum type twice to verify that we dont declare or define it # twice. # - Use the same struct type twice for the same reason. # - Include arrays of primitives and structs. # - Include enum primitives and array of enums. Arrays of enums must be handled # specially by the C++ code. # - Include enums both with and without default values. # - Include primitive string, numbers & doubles both with and without default # values. # - Have an array within a struct, to verify that we correctly recurse. # - Reuse type name further within to ensure that this works. namespace=test # Some random bool without a default value. These comments exist to check # that comment parsing works. bool_val bool restart ## A bool with a default value set. bool_with_def bool default=false restart # An int value # Also test that multiline comments # work. int_val int restart int_with_def int default=-545 restart long_val long restart long_with_def long default=-50000000000 restart double_val double restart double_with_def double default=-6.43 restart # Another comment string_val string restart stringwithdef string default="foobar" restart enum_val enum { FOO, BAR, FOOBAR } restart enumwithdef enum { FOO2, BAR2, FOOBAR2 } default=BAR2 restart onechoice enum { ONLYFOO } default=ONLYFOO restart refval reference restart refwithdef reference default=":parent:" restart fileVal file restart pathVal path restart urlVal url boolarr[] bool restart intarr[] int restart longarr[] long restart doublearr[] double restart stringarr[] string restart enumarr[] enum { ARRAY, VALUES } restart refarr[] reference restart fileArr[] file restart pathArr[] path restart urlArr[] url #This is a map of ints. intMap{} int restart stringMap{} string restart filemap{} file restart pathMap{} path restart urlMap{} url # A basic struct basicStruct.foo string default="basic" restart basicStruct.bar int restart basicStruct.intArr[] int restart # A struct of struct rootStruct.inner0.name string default="inner0" restart rootStruct.inner0.index int restart rootStruct.inner1.name string default="inner1" restart rootStruct.inner1.index int restart rootStruct.innerArr[].boolVal bool default=false restart rootStruct.innerArr[].stringVal string restart # This is my array myarray[].intval int default=14 restart myarray[].stringval[] string restart myarray[].enumval enum { INNER, ENUM, TYPE } default=TYPE restart myarray[].refval reference # Value in array without default restart myarray[].fileVal file restart myarray[].urlVal url myarray[].anotherarray[].foo int default=-4 restart myarray[].myStruct.a int restart myarray[].myStruct.b int default=2 restart myStructMap{}.myInt int restart myStructMap{}.myString string restart myStructMap{}.myIntDef int default=56 restart myStructMap{}.myStringDef string default="g" restart myStructMap{}.anotherMap{}.anInt int restart myStructMap{}.anotherMap{}.anIntDef int default=11 restart