architectures.cf and test.cf are two promises.cf inputs files, with :

architectures.cf build csv_architecture array from csv file :

bundle common architectures
{
vars:

  csv_architecture_defined::
    "csv_architecture_len"
      int     => readstringarrayidx(  "csv_architecture",
                                      "$(sys.workdir)/resources/main/architectures/$(architecture_name).csv",
                                      "\s*#[^\n]*",
                                      ";",
                                      10000,
                                      4000000
                                    ),
      comment => "csv architecture array definition";
}

and test.cf file contain architecture_test bundle which uses architectures.csv_architecture array :

bundle common architecture_test
{

  vars:

    csv_architecture_defined::
      "csv_architecture"      string => "architectures.csv_architecture";
      "csv_architecture_idx"  slist  => getindices("$(csv_architecture)");

  classes:

    csv_architecture_defined::
      "csv_context_type$(csv_architecture_idx)_ok"
        and => {
                  strcmp("context", "$($(csv_architecture)[$(csv_architecture_idx)][0])"),
                  isvariable("$(csv_architecture)[$(csv_architecture_idx)][2]"),
                  isvariable("$(csv_architecture)[$(csv_architecture_idx)][3]"),
              };
      "$($(csv_architecture)[$(csv_architecture_idx)][2])"
        and => {
                  "$($(csv_architecture)[$(csv_architecture_idx)][1])",
                  classmatch("$($(csv_architecture)[$(csv_architecture_idx)][3])"),
                  "csv_context_type$(csv_architecture_idx)_ok"
               };
}

architecture csv file :

context;class_scope1;i_am_a_testclass;node0.*