Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reserved words conflict: The jak2stat5 example fails with mrgsolve #10

Open
martinmodrak opened this issue Nov 1, 2021 · 3 comments
Open
Assignees

Comments

@martinmodrak
Copy link

I took the model at https://github.com/hetalang/qsp-benchmark/tree/master/jak2stat5/src, compiled it and tried to run it with mrgsolve. Unfortunately, I get an error.

I was able to run the simple example model from readme via mrgsolve, so it presumably isn't just an installation issue.

The error I get is:

> nameless_model <- mrgsolve::mread(model = 'nameless', file = 'model.cpp')
Building nameless ... error.

---:: stderr ::---------------------------------------------
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:25:10: error: expected unqualified-id before 'default'
   double default;
          ^~~~~~~

7:1: error: case label not within a switch statement
 default = 1.0;
 ^~~~~~~
7:8: error: expected ':' before '=' token
 default = 1.0;
        ^~
        :
7:9: error: expected primary-expression before '=' token
 default = 1.0;
         ^

14:37: error: expected primary-expression before 'default'
 EpoRJAK2_amt__0 = (init_EpoRJAK2) * default;
                                     ^~~~~~~
15:24: error: expected primary-expression before 'default'
 SOCS3_amt__0 = (0.0) * default;
                        ^~~~~~~
16:28: error: expected primary-expression before 'default'
 EpoRpJAK2_amt__0 = (0.0) * default;
                            ^~~~~~~
17:26: error: expected primary-expression before 'default'
 SHP1Act_amt__0 = (0.0) * default;
                          ^~~~~~~
18:31: error: expected primary-expression before 'default'
 EpoRJAK2_CIS_amt__0 = (0.0) * default;
                               ^~~~~~~
19:30: error: expected primary-expression before 'default'
 p1EpoRpJAK2_amt__0 = (0.0) * default;
                              ^~~~~~~
20:30: error: expected primary-expression before 'default'
 p2EpoRpJAK2_amt__0 = (0.0) * default;
                              ^~~~~~~
21:31: error: expected primary-expression before 'default'
 p12EpoRpJAK2_amt__0 = (0.0) * default;
                               ^~~~~~~
22:29: error: expected primary-expression before 'default'
 SHP1_amt__0 = (init_SHP1) * default;
                             ^~~~~~~
24:22: error: expected primary-expression before 'default'
 CIS_amt__0 = (0.0) * default;
                      ^~~~~~~
In file included from nameless-mread-source.cpp:3:

nameless-mread-header.h:89:35: error: expected primary-expression before 'default'
 #define EpoRJAK2 (EpoRJAK2_amt_ / default)
                                   ^~~~~~~
44:13: note: in expansion of macro 'EpoRJAK2'
 v1 = (Epo * EpoRJAK2 * JAK2ActEpo) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
             ^~~~~~~~
nameless-mread-header.h:89:35: error: expected ')' before 'default'
 #define EpoRJAK2 (EpoRJAK2_amt_ / default)
                  ~                ^~~~~~~
44:13: note: in expansion of macro 'EpoRJAK2'
 v1 = (Epo * EpoRJAK2 * JAK2ActEpo) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
             ^~~~~~~~
44:75: error: expected ')' before ';' token
 v1 = (Epo * EpoRJAK2 * JAK2ActEpo) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
      ~                                                                    ^
                                                                           )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:90:37: error: expected primary-expression before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                                     ^~~~~~~
45:6: note: in expansion of macro 'EpoRpJAK2'
 v2 = EpoRpJAK2 * (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act;
      ^~~~~~~~~
nameless-mread-header.h:90:37: error: expected ')' before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                   ~                 ^~~~~~~
45:6: note: in expansion of macro 'EpoRpJAK2'
 v2 = EpoRpJAK2 * (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act;
      ^~~~~~~~~
nameless-mread-header.h:90:37: error: expected primary-expression before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                                     ^~~~~~~
46:7: note: in expansion of macro 'EpoRpJAK2'
 v3 = (EpoRpJAK2 * EpoRActJAK2) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
       ^~~~~~~~~
nameless-mread-header.h:90:37: error: expected ')' before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                   ~                 ^~~~~~~
46:7: note: in expansion of macro 'EpoRpJAK2'
 v3 = (EpoRpJAK2 * EpoRActJAK2) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
       ^~~~~~~~~
46:71: error: expected ')' before ';' token
 v3 = (EpoRpJAK2 * EpoRActJAK2) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
      ~                                                                ^
                                                                       )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:90:37: error: expected primary-expression before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                                     ^~~~~~~
47:13: note: in expansion of macro 'EpoRpJAK2'
 v4 = (3.0 * EpoRpJAK2 * EpoRActJAK2) / ((EpoRCISInh * EpoRJAK2_CIS + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0));
             ^~~~~~~~~
nameless-mread-header.h:90:37: error: expected ')' before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                   ~                 ^~~~~~~
47:13: note: in expansion of macro 'EpoRpJAK2'
 v4 = (3.0 * EpoRpJAK2 * EpoRActJAK2) / ((EpoRCISInh * EpoRJAK2_CIS + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0));
             ^~~~~~~~~
47:115: error: expected ')' before ';' token
 v4 = (3.0 * EpoRpJAK2 * EpoRActJAK2) / ((EpoRCISInh * EpoRJAK2_CIS + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0));
      ~                                                                                                            ^
                                                                                                                   )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:91:41: error: expected primary-expression before 'default'
 #define p1EpoRpJAK2 (p1EpoRpJAK2_amt_ / default)
                                         ^~~~~~~
48:27: note: in expansion of macro 'p1EpoRpJAK2'
 v5 = (3.0 * EpoRActJAK2 * p1EpoRpJAK2) / ((EpoRCISInh * EpoRJAK2_CIS + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0));
                           ^~~~~~~~~~~
nameless-mread-header.h:91:41: error: expected ')' before 'default'
 #define p1EpoRpJAK2 (p1EpoRpJAK2_amt_ / default)
                     ~                   ^~~~~~~
48:27: note: in expansion of macro 'p1EpoRpJAK2'
 v5 = (3.0 * EpoRActJAK2 * p1EpoRpJAK2) / ((EpoRCISInh * EpoRJAK2_CIS + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0));
                           ^~~~~~~~~~~
48:117: error: expected ')' before ';' token
 v5 = (3.0 * EpoRActJAK2 * p1EpoRpJAK2) / ((EpoRCISInh * EpoRJAK2_CIS + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0));
      ~                                                                                                              ^
                                                                                                                     )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:92:41: error: expected primary-expression before 'default'
 #define p2EpoRpJAK2 (p2EpoRpJAK2_amt_ / default)
                                         ^~~~~~~
49:21: note: in expansion of macro 'p2EpoRpJAK2'
 v6 = (EpoRActJAK2 * p2EpoRpJAK2) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
                     ^~~~~~~~~~~
nameless-mread-header.h:92:41: error: expected ')' before 'default'
 #define p2EpoRpJAK2 (p2EpoRpJAK2_amt_ / default)
                     ~                   ^~~~~~~
49:21: note: in expansion of macro 'p2EpoRpJAK2'
 v6 = (EpoRActJAK2 * p2EpoRpJAK2) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
                     ^~~~~~~~~~~
49:73: error: expected ')' before ';' token
 v6 = (EpoRActJAK2 * p2EpoRpJAK2) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0);
      ~                                                                  ^
                                                                         )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:96:33: error: expected primary-expression before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                                 ^~~~~~~
50:38: note: in expansion of macro 'SHP1Act'
 v7 = (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act * p1EpoRpJAK2;
                                      ^~~~~~~
nameless-mread-header.h:96:33: error: expected ')' before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                 ~               ^~~~~~~
50:38: note: in expansion of macro 'SHP1Act'
 v7 = (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act * p1EpoRpJAK2;
                                      ^~~~~~~
nameless-mread-header.h:96:33: error: expected primary-expression before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                                 ^~~~~~~
51:38: note: in expansion of macro 'SHP1Act'
 v8 = (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act * p2EpoRpJAK2;
                                      ^~~~~~~
nameless-mread-header.h:96:33: error: expected ')' before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                 ~               ^~~~~~~
51:38: note: in expansion of macro 'SHP1Act'
 v8 = (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act * p2EpoRpJAK2;
                                      ^~~~~~~
nameless-mread-header.h:96:33: error: expected primary-expression before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                                 ^~~~~~~
52:38: note: in expansion of macro 'SHP1Act'
 v9 = (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act * p12EpoRpJAK2;
                                      ^~~~~~~
nameless-mread-header.h:96:33: error: expected ')' before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                 ~               ^~~~~~~
52:38: note: in expansion of macro 'SHP1Act'
 v9 = (JAK2EpoRDeaSHP1 / init_SHP1) * SHP1Act * p12EpoRpJAK2;
                                      ^~~~~~~
nameless-mread-header.h:94:43: error: expected primary-expression before 'default'
 #define EpoRJAK2_CIS (EpoRJAK2_CIS_amt_ / default)
                                           ^~~~~~~
53:7: note: in expansion of macro 'EpoRJAK2_CIS'
 v10 = EpoRJAK2_CIS * (EpoRCISRemove / init_EpoRJAK2) * (p12EpoRpJAK2 + p1EpoRpJAK2);
       ^~~~~~~~~~~~
nameless-mread-header.h:94:43: error: expected ')' before 'default'
 #define EpoRJAK2_CIS (EpoRJAK2_CIS_amt_ / default)
                      ~                    ^~~~~~~
53:7: note: in expansion of macro 'EpoRJAK2_CIS'
 v10 = EpoRJAK2_CIS * (EpoRCISRemove / init_EpoRJAK2) * (p12EpoRpJAK2 + p1EpoRpJAK2);
       ^~~~~~~~~~~~
nameless-mread-header.h:95:27: error: expected primary-expression before 'default'
 #define SHP1 (SHP1_amt_ / default)
                           ^~~~~~~
54:7: note: in expansion of macro 'SHP1'
 v11 = SHP1 * (SHP1ActEpoR / init_EpoRJAK2) * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2);
       ^~~~
nameless-mread-header.h:95:27: error: expected ')' before 'default'
 #define SHP1 (SHP1_amt_ / default)
              ~            ^~~~~~~
54:7: note: in expansion of macro 'SHP1'
 v11 = SHP1 * (SHP1ActEpoR / init_EpoRJAK2) * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2);
       ^~~~
nameless-mread-header.h:96:33: error: expected primary-expression before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                                 ^~~~~~~
55:17: note: in expansion of macro 'SHP1Act'
 v12 = SHP1Dea * SHP1Act;
                 ^~~~~~~
nameless-mread-header.h:96:33: error: expected ')' before 'default'
 #define SHP1Act (SHP1Act_amt_ / default)
                 ~               ^~~~~~~
55:17: note: in expansion of macro 'SHP1Act'
 v12 = SHP1Dea * SHP1Act;
                 ^~~~~~~
nameless-mread-header.h:90:37: error: expected primary-expression before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                                     ^~~~~~~
56:50: note: in expansion of macro 'EpoRpJAK2'
 v13 = (STAT5 * (STAT5ActJAK2 / init_EpoRJAK2) * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2)) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0) * cyt;
                                                  ^~~~~~~~~
nameless-mread-header.h:90:37: error: expected ')' before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                   ~                 ^~~~~~~
56:50: note: in expansion of macro 'EpoRpJAK2'
 v13 = (STAT5 * (STAT5ActJAK2 / init_EpoRJAK2) * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2)) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0) * cyt;
                                                  ^~~~~~~~~
56:150: error: expected ')' before ';' token
 v13 = (STAT5 * (STAT5ActJAK2 / init_EpoRJAK2) * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2)) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0) * cyt;
                                                 ~                                                                                                    ^
                                                                                                                                                      )
56:150: error: expected ')' before ';' token
 v13 = (STAT5 * (STAT5ActJAK2 / init_EpoRJAK2) * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2)) / (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0) * cyt;
       ~                                                                                                                                              ^
                                                                                                                                                      )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:93:43: error: expected primary-expression before 'default'
 #define p12EpoRpJAK2 (p12EpoRpJAK2_amt_ / default)
                                           ^~~~~~~
57:64: note: in expansion of macro 'p12EpoRpJAK2'
 v14 = (STAT5 * (STAT5ActEpoR / pow(init_EpoRJAK2, 2.0)) * pow((p12EpoRpJAK2 + p1EpoRpJAK2), 2.0)) / ((CIS * (CISInh / CISEqc) + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0)) * cyt;
                                                                ^~~~~~~~~~~~
nameless-mread-header.h:93:43: error: expected ')' before 'default'
 #define p12EpoRpJAK2 (p12EpoRpJAK2_amt_ / default)
                      ~                    ^~~~~~~
57:64: note: in expansion of macro 'p12EpoRpJAK2'
 v14 = (STAT5 * (STAT5ActEpoR / pow(init_EpoRJAK2, 2.0)) * pow((p12EpoRpJAK2 + p1EpoRpJAK2), 2.0)) / ((CIS * (CISInh / CISEqc) + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0)) * cyt;
                                                                ^~~~~~~~~~~~
57:180: error: expected ')' before ';' token
 v14 = (STAT5 * (STAT5ActEpoR / pow(init_EpoRJAK2, 2.0)) * pow((p12EpoRpJAK2 + p1EpoRpJAK2), 2.0)) / ((CIS * (CISInh / CISEqc) + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0)) * cyt;
                                                               ~                                                                                                                    ^
                                                                                                                                                                                    )
57:180: error: expected ')' before ';' token
 v14 = (STAT5 * (STAT5ActEpoR / pow(init_EpoRJAK2, 2.0)) * pow((p12EpoRpJAK2 + p1EpoRpJAK2), 2.0)) / ((CIS * (CISInh / CISEqc) + 1.0) * (SOCS3 * (SOCS3Inh / SOCS3Eqc) + 1.0)) * cyt;
       ~                                                                                                                                                                            ^
                                                                                                                                                                                    )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:106:25: error: expected primary-expression before 'default'
 #define CIS (CIS_amt_ / default)
                         ^~~~~~~
68:7: note: in expansion of macro 'CIS'
 v25 = CIS * CISTurn;
       ^~~
nameless-mread-header.h:106:25: error: expected ')' before 'default'
 #define CIS (CIS_amt_ / default)
             ~           ^~~~~~~
68:7: note: in expansion of macro 'CIS'
 v25 = CIS * CISTurn;
       ^~~
nameless-mread-header.h:113:29: error: expected primary-expression before 'default'
 #define SOCS3 (SOCS3_amt_ / default)
                             ^~~~~~~
78:7: note: in expansion of macro 'SOCS3'
 v35 = SOCS3 * SOCS3Turn;
       ^~~~~
nameless-mread-header.h:113:29: error: expected ')' before 'default'
 #define SOCS3 (SOCS3_amt_ / default)
               ~             ^~~~~~~
78:7: note: in expansion of macro 'SOCS3'
 v35 = SOCS3 * SOCS3Turn;
       ^~~~~
nameless-mread-header.h:90:37: error: expected primary-expression before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                                     ^~~~~~~
81:64: note: in expansion of macro 'EpoRpJAK2'
 pJAK2_au = log10(offset_pJAK2_long + 2.0 * scale_pJAK2_long * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2) / init_EpoRJAK2);
                                                                ^~~~~~~~~
nameless-mread-header.h:90:37: error: expected ')' before 'default'
 #define EpoRpJAK2 (EpoRpJAK2_amt_ / default)
                   ~                 ^~~~~~~
81:64: note: in expansion of macro 'EpoRpJAK2'
 pJAK2_au = log10(offset_pJAK2_long + 2.0 * scale_pJAK2_long * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2) / init_EpoRJAK2);
                                                                ^~~~~~~~~
81:134: error: expected ')' before ';' token
 pJAK2_au = log10(offset_pJAK2_long + 2.0 * scale_pJAK2_long * (EpoRpJAK2 + p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2) / init_EpoRJAK2);
                                                               ~                                                                      ^
                                                                                                                                      )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:93:43: error: expected primary-expression before 'default'
 #define p12EpoRpJAK2 (p12EpoRpJAK2_amt_ / default)
                                           ^~~~~~~
82:65: note: in expansion of macro 'p12EpoRpJAK2'
 pEpoR_au = log10(offset_pEpoR_long + 16.0 * scale_pEpoR_long * (p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2) / init_EpoRJAK2);
                                                                 ^~~~~~~~~~~~
nameless-mread-header.h:93:43: error: expected ')' before 'default'
 #define p12EpoRpJAK2 (p12EpoRpJAK2_amt_ / default)
                      ~                    ^~~~~~~
82:65: note: in expansion of macro 'p12EpoRpJAK2'
 pEpoR_au = log10(offset_pEpoR_long + 16.0 * scale_pEpoR_long * (p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2) / init_EpoRJAK2);
                                                                 ^~~~~~~~~~~~
82:123: error: expected ')' before ';' token
 pEpoR_au = log10(offset_pEpoR_long + 16.0 * scale_pEpoR_long * (p12EpoRpJAK2 + p1EpoRpJAK2 + p2EpoRpJAK2) / init_EpoRJAK2);
                                                                ~                                                          ^
                                                                                                                           )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:106:25: error: expected primary-expression before 'default'
 #define CIS (CIS_amt_ / default)
                         ^~~~~~~
83:34: note: in expansion of macro 'CIS'
 CIS_au = log10(offset_CIS_long + CIS * scale_CIS_long / CISEqc);
                                  ^~~
nameless-mread-header.h:106:25: error: expected ')' before 'default'
 #define CIS (CIS_amt_ / default)
             ~           ^~~~~~~
83:34: note: in expansion of macro 'CIS'
 CIS_au = log10(offset_CIS_long + CIS * scale_CIS_long / CISEqc);
                                  ^~~
nameless-mread-header.h:113:29: error: expected primary-expression before 'default'
 #define SOCS3 (SOCS3_amt_ / default)
                             ^~~~~~~
84:43: note: in expansion of macro 'SOCS3'
 SOCS3_au = log10(offset_SOCS3_long + fabs(SOCS3) * scale_SOCS3_long / SOCS3Eqc);
                                           ^~~~~
nameless-mread-header.h:113:29: error: expected ')' before 'default'
 #define SOCS3 (SOCS3_amt_ / default)
               ~             ^~~~~~~
84:43: note: in expansion of macro 'SOCS3'
 SOCS3_au = log10(offset_SOCS3_long + fabs(SOCS3) * scale_SOCS3_long / SOCS3Eqc);
                                           ^~~~~
nameless-mread-header.h:95:27: error: expected primary-expression before 'default'
 #define SHP1 (SHP1_amt_ / default)
                           ^~~~~~~
88:18: note: in expansion of macro 'SHP1'
 SHP1_abs = log10(SHP1 + SHP1Act);
                  ^~~~
nameless-mread-header.h:95:27: error: expected ')' before 'default'
 #define SHP1 (SHP1_amt_ / default)
              ~            ^~~~~~~
88:18: note: in expansion of macro 'SHP1'
 SHP1_abs = log10(SHP1 + SHP1Act);
                  ^~~~
nameless-mread-header.h:106:25: error: expected primary-expression before 'default'
 #define CIS (CIS_amt_ / default)
                         ^~~~~~~
89:22: note: in expansion of macro 'CIS'
 CIS_abs = log10(fabs(CIS));
                      ^~~
nameless-mread-header.h:106:25: error: expected ')' before 'default'
 #define CIS (CIS_amt_ / default)
             ~           ^~~~~~~
89:22: note: in expansion of macro 'CIS'
 CIS_abs = log10(fabs(CIS));
                      ^~~
nameless-mread-header.h:113:29: error: expected primary-expression before 'default'
 #define SOCS3 (SOCS3_amt_ / default)
                             ^~~~~~~
90:24: note: in expansion of macro 'SOCS3'
 SOCS3_abs = log10(fabs(SOCS3));
                        ^~~~~
nameless-mread-header.h:113:29: error: expected ')' before 'default'
 #define SOCS3 (SOCS3_amt_ / default)
               ~             ^~~~~~~
90:24: note: in expansion of macro 'SOCS3'
 SOCS3_abs = log10(fabs(SOCS3));
                        ^~~~~
nameless-mread-header.h:95:27: error: expected primary-expression before 'default'
 #define SHP1 (SHP1_amt_ / default)
                           ^~~~~~~
98:39: note: in expansion of macro 'SHP1'
 tSHP1_au = log10(scale_SHP1_shp1oe * (SHP1 + SHP1Act) / init_SHP1);
                                       ^~~~
nameless-mread-header.h:95:27: error: expected ')' before 'default'
 #define SHP1 (SHP1_amt_ / default)
              ~            ^~~~~~~
98:39: note: in expansion of macro 'SHP1'
 tSHP1_au = log10(scale_SHP1_shp1oe * (SHP1 + SHP1Act) / init_SHP1);
                                       ^~~~
98:67: error: expected ')' before ';' token
 tSHP1_au = log10(scale_SHP1_shp1oe * (SHP1 + SHP1Act) / init_SHP1);
                                      ~                            ^
                                                                   )
In file included from nameless-mread-source.cpp:3:
nameless-mread-header.h:106:25: error: expected primary-expression before 'default'
 #define CIS (CIS_amt_ / default)
                         ^~~~~~~
99:17: note: in expansion of macro 'CIS'
 CIS_au1 = log10(CIS * scale1_CIS_dr90 / CISEqc);
                 ^~~
nameless-mread-header.h:106:25: error: expected ')' before 'default'
 #define CIS (CIS_amt_ / default)
             ~           ^~~~~~~
99:17: note: in expansion of macro 'CIS'
 CIS_au1 = log10(CIS * scale1_CIS_dr90 / CISEqc);
                 ^~~
nameless-mread-header.h:106:25: error: expected primary-expression before 'default'
 #define CIS (CIS_amt_ / default)
                         ^~~~~~~
100:17: note: in expansion of macro 'CIS'
 CIS_au2 = log10(CIS * scale2_CIS_dr90 / CISEqc);
                 ^~~
nameless-mread-header.h:106:25: error: expected ')' before 'default'
 #define CIS (CIS_amt_ / default)
             ~           ^~~~~~~
100:17: note: in expansion of macro 'CIS'
 CIS_au2 = log10(CIS * scale2_CIS_dr90 / CISEqc);
                 ^~~
make: *** [C:/PROGRA~1/R/R-41~1.0/etc/x64/Makeconf:245: nameless-mread-source.o] Error 1
------------------------------------------------------------
Error: the model build step failed.
@metelkin
Copy link
Contributor

metelkin commented Nov 1, 2021

Hi @martinmodrak ,
Thank you for your feedback. I have the same issue.
The model included a compartment with "default" id.
This is a reserved word in mrgsolve, as I understand.

I've updated the repository with jak2stat5 model changing "default" => "def".
Now everything is fine. Compilation and simulations are OK.
Pull the latest commit from hetalang/qsp-benchmark and recompile the model.

This is a workaround. But the unexpected issues with reserved words are still a problem.
We need a better solution.

@metelkin metelkin self-assigned this Nov 1, 2021
@metelkin metelkin added bug Something isn't working and removed bug Something isn't working labels Nov 1, 2021
@martinmodrak
Copy link
Author

Wouldn't a systematic solution be that the XXExport classes expose a list of keywords and the compiler checks the model against this list. It could then either:

  • Raise an error/warning when an id conflicts with the keywords, or
  • Automatically rename all ids to avoid the conflict (e.g. by adding underscorses or something)

(I don't insist on this being done for the review, it just seems like a relatively cheap but useful solution)

@metelkin
Copy link
Contributor

metelkin commented Nov 4, 2021

@martinmodrak, agree, this would be good.
As a fast temporal solution, I've added "default" into a general keyword list.
Now the usage of such id throws an error. A user should change the id of such a component by himself.
But I still doubt if it's the best solution.

  1. It seems that each "export" type should have its own stop list. We need time to collect and analyze them all.
  2. We should also think of automatic renaming rules.

So I guess we suggest a better solution later.

@metelkin metelkin changed the title The jak2stat5 example fails with mrgsolve Reserved words conflict: The jak2stat5 example fails with mrgsolve Nov 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants