Changeset 13316


Ignore:
Timestamp:
2012-10-11T16:55:29+02:00 (12 years ago)
Author:
arun3688
Message:

OMCCp bugs fixed with latest update - arun3688

Location:
trunk/testsuite/openmodelica/omcc
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/testsuite/openmodelica/omcc/LexerModelica.mo

    r12732 r13316  
    181181  (resToken,program2) := match (program1,tokens1)
    182182    local
    183       Integer c,d,act,val,c2,curr2,fchar;
     183     // Integer c,d,act,val,c2,curr2,fchar;
     184      Integer d,act,val,c2,curr2,fchar;
    184185      list<Integer> rest;
    185186      list<OMCCTypes.Token> lToken;
  • trunk/testsuite/openmodelica/omcc/Main.mo

    r12732 r13316  
    2929      String s,str;
    3030      Boolean result;
     31      Real tp,tl,tt;
    3132     case args as _::_
    3233      equation
     
    3839        // call the lexer
    3940       print("\nstarting lexer");
     41        System.realtimeTick(1); // enable if you need timing measurements
    4042       tokens = LexerModelica.scan(filename,false);
     43        tl = System.realtimeTock(1)*1000;  // enable if you need timing measurements
     44      print("\n Time Lexer:" + realString(tl));  // enable if you need timing measurements
    4145       print("\n");
    42        print(OMCCTypes.printTokens(tokens,""));
    43        print("\n Tokens processed:");
    44        print(intString(listLength(tokens)));
     46     //  print(OMCCTypes.printTokens(tokens,""));
     47        print("\n Tokens processed:");
     48        print(intString(listLength(tokens)));
    4549       
    4650       
    4751        // call the parser
    4852         print("\nstarting parser");
    49         (result,astTreeModelica) = ParserModelica.parse(tokens,filename,true);
     53     
     54       System.realtimeTick(1);  // enable if you need timing measurements
     55       (result,astTreeModelica) = ParserModelica.parse(tokens,filename,true);
     56     
     57       tp = System.realtimeTock(1)*1000;   // enable if you need timing measurements
     58       print("\n Time Parser:" + realString(tp));  // enable if you need timing measurements
     59       print("\n");
     60      tt = tl+tp;    // enable if you need timing measurements           
     61       print("\n Total Time:" + realString(tt)); // enable if you need timing measurements
    5062         print("\n");
    5163       
  • trunk/testsuite/openmodelica/omcc/Makefile

    r13244 r13316  
    88  @echo OPENMODELICAHOME=" $(OPENMODELICAHOME) "
    99  @echo
    10   @echo Setting BaseLine...
    1110  @echo
    1211  @$(OMC) $(TESTFLAG) SCRIPT.mos
  • trunk/testsuite/openmodelica/omcc/ParseCodeModelica.mo

    r12732 r13316  
    21932193           v1ElementSpec::skElementSpec = skElementSpec;
    21942194           // build
    2195            vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),"IMPORT",(v1ElementSpec),info,NONE());
     2195           vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),(v1ElementSpec),info,NONE());
    21962196           // push Result
    21972197           skElement= vElement::skElement;
     
    22052205           v1ElementSpec::skElementSpec = skElementSpec;
    22062206           // build
    2207            vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),"EXTENDS",(v1ElementSpec),info,NONE());
     2207           vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),(v1ElementSpec),info,NONE());
    22082208           // push Result
    22092209           skElement= vElement::skElement;
     
    22582258           v1ElementSpec::skElementSpec = skElementSpec;
    22592259           // build
    2260            vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),"??",(v1ElementSpec),info,NONE());
     2260           vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),(v1ElementSpec),info,NONE());
    22612261           // push Result
    22622262           skElement= vElement::skElement;
     
    22712271           v1ElementSpec::skElementSpec = skElementSpec;
    22722272           // build
    2273            vElement = Absyn.ELEMENT(false,SOME(Absyn.REDECLARE()),Absyn.NOT_INNER_OUTER(),"CLASS",(v1ElementSpec),info,NONE());
     2273           vElement = Absyn.ELEMENT(false,SOME(Absyn.REDECLARE()),Absyn.NOT_INNER_OUTER(),(v1ElementSpec),info,NONE());
    22742274           // push Result
    22752275           skElement= vElement::skElement;
     
    22832283           v1ElementSpec::skElementSpec = skElementSpec;
    22842284           // build
    2285            vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),"component",(v1ElementSpec),info,NONE());
     2285           vElement = Absyn.ELEMENT(false,NONE(),Absyn.NOT_INNER_OUTER(),(v1ElementSpec),info,NONE());
    22862286           // push Result
    22872287           skElement= vElement::skElement;
     
    22962296           v1InnerOuter::skInnerOuter = skInnerOuter;
    22972297           // build
    2298            vElement = Absyn.ELEMENT(false,NONE(),(v1InnerOuter),"INNEROUTTER ELEMENTSPEC",(v2ElementSpec),info,NONE());
     2298           vElement = Absyn.ELEMENT(false,NONE(),(v1InnerOuter),(v2ElementSpec),info,NONE());
    22992299           // push Result
    23002300           skElement= vElement::skElement;
     
    23112311           v1RedeclareKeywords::skRedeclareKeywords = skRedeclareKeywords;
    23122312           // build
    2313            vElement = Absyn.ELEMENT((v2Boolean),SOME((v1RedeclareKeywords)),(v3InnerOuter),"REDE ELEMENTSPEC",(v4ElementSpec),info,NONE());
     2313           vElement = Absyn.ELEMENT((v2Boolean),SOME((v1RedeclareKeywords)),(v3InnerOuter),(v4ElementSpec),info,NONE());
    23142314           // push Result
    23152315           skElement= vElement::skElement;
     
    23252325           v1RedeclareKeywords::skRedeclareKeywords = skRedeclareKeywords;
    23262326           // build
    2327            vElement = Absyn.ELEMENT((v2Boolean),SOME((v1RedeclareKeywords)),Absyn.NOT_INNER_OUTER(),"REDE ELEMENTSPEC",(v3ElementSpec),info,NONE());
     2327           vElement = Absyn.ELEMENT((v2Boolean),SOME((v1RedeclareKeywords)),Absyn.NOT_INNER_OUTER(),(v3ElementSpec),info,NONE());
    23282328           // push Result
    23292329           skElement= vElement::skElement;
     
    23402340           v1RedeclareKeywords::skRedeclareKeywords = skRedeclareKeywords;
    23412341           // build
    2342            vElement = Absyn.ELEMENT((v2Boolean),SOME((v1RedeclareKeywords)),Absyn.NOT_INNER_OUTER(),"REDE ELEMENTSPEC",(v3ElementSpec),info,SOME((v4ConstrainClass)));
     2342           vElement = Absyn.ELEMENT((v2Boolean),SOME((v1RedeclareKeywords)),Absyn.NOT_INNER_OUTER(),(v3ElementSpec),info,SOME((v4ConstrainClass)));
    23432343           // push Result
    23442344           skElement= vElement::skElement;
     
    23532353           v1String::skString = skString;
    23542354           // build
    2355            vElement = Absyn.ELEMENT(true,NONE(),Absyn.NOT_INNER_OUTER(),"FINAL ELEMENTSPEC",(v2ElementSpec),info,NONE());
     2355           vElement = Absyn.ELEMENT(true,NONE(),Absyn.NOT_INNER_OUTER(),(v2ElementSpec),info,NONE());
    23562356           // push Result
    23572357           skElement= vElement::skElement;
     
    23672367           v1String::skString = skString;
    23682368           // build
    2369            vElement = Absyn.ELEMENT(true,NONE(),(v2InnerOuter),"FINAL INNEROUTER ELEMENTSPEC",(v3ElementSpec),info,NONE());
     2369           vElement = Absyn.ELEMENT(true,NONE(),(v2InnerOuter),(v3ElementSpec),info,NONE());
    23702370           // push Result
    23712371           skElement= vElement::skElement;
     
    37543754           v1String::skString = skString;
    37553755           // build
    3756            vCase = Absyn.CASE((v2Exp),info,{},{},(v4Exp),info,NONE(),info);
     3756           vCase = Absyn.CASE((v2Exp),NONE(),info,{},{},(v4Exp),info,NONE(),info);
    37573757           // push Result
    37583758           skCase= vCase::skCase;
     
    37713771           v1String::skString = skString;
    37723772           // build
    3773            vCase = Absyn.CASE((v2Exp),info,{},{},(v4Exp),info,NONE(),info); 
     3773           vCase = Absyn.CASE((v2Exp),NONE(),info,{},{},(v4Exp),info,NONE(),info); 
    37743774           // push Result
    37753775           skCase= vCase::skCase;
     
    37893789           v1String::skString = skString;
    37903790           // build
    3791            vCase = Absyn.CASE((v2Exp),info,{},(v4EquationItems),(v6Exp),info,NONE(),info);
     3791           vCase = Absyn.CASE((v2Exp),NONE(),info,{},(v4EquationItems),(v6Exp),info,NONE(),info);
    37923792           // push Result
    37933793           skCase= vCase::skCase;
     
    50515051    Variability variability,v1 "variability ; parameter, constant etc." ;
    50525052    Direction direction,d1 "direction" ;
     5053   // Absyn.Parallelism parallelism;
    50535054    Absyn.Parallelism parallelism;
    50545055    ArrayDim arrayDim,a1 "arrayDim" ;
  • trunk/testsuite/openmodelica/omcc/ParserModelica.mo

    r12732 r13316  
    132132  input OMCCTypes.Info info;
    133133algorithm
    134     Error.addSourceMessage(Error.SYNTAX_ERROR,errStk,info);
     134   // Error.addSourceMessage(Error.SYNTAX_ERROR,errStk,info);
     135      Error.addSourceMessage(Error.LOOKUP_ERROR,errStk,info);
    135136    //print(printSemStack(listReverse(errStk),""));
    136137end addSourceMessage;
     
    160161  // env variables               
    161162  OMCCTypes.Token cTok,nTk;
     163  OMCCTypes.Token c,nt;
    162164  ParseCodeModelica.AstStack astStk,astSkBk;
    163165  Boolean debug;
     
    189191        list<OMCCTypes.Token> rest;
    190192        list<Integer> vl;
    191         OMCCTypes.Token c,nt;
     193       // OMCCTypes.Token c,nt;
     194         OMCCTypes.Token c1,nt1;
    192195        Integer n,len,val,tok,tmTok,chkVal;
    193196        String nm,semVal;
     
    260263             cSt = n;
    261264             stateStk = cSt::stateStk;
    262              env2 = ENV(c,nt,stateStk,errStk,errSt,sSt,cSt,rest,rest,astStk,debug,stateSkBk,astSkBk);
    263            
     265           //  env2 = ENV(c,nt,stateStk,errStk,errSt,sSt,cSt,rest,rest,astStk,debug,stateSkBk,astSkBk);
     266                env2 = ENV(c1,nt1,stateStk,errStk,errSt,sSt,cSt,rest,rest,astStk,debug,stateSkBk,astSkBk);
    264267           end if;
    265268         end if;
  • trunk/testsuite/openmodelica/omcc/Readme.txt

    r11952 r13316  
    22// There are two folders named omcc and omcc_test in the directory trunk/openmodelica/testsuite/
    33// the "omcc" folder contains the implemented code and the "omcc_test" folder contains the test cases
    4 // the omccp is tested with 102 test cases, look for the file SCRIPT.mos in the folder "omcc"
     4// look for the file SCRIPT.mos in the folder "omcc"
    55// to make the compilation process easier a Makefile is created.(look into the omcc folder)
    66
    771) Open the mingw terminal if you are a windows user and normal terminal for linux user
    88
    9 2) In the terminal window go to the path /openmodelica/testsuite/omcc
     92) In the terminal window go to the path /OpenModelica/testsuite/openmodelica/omcc
    1010
    11 3) at present the code is tested with testing environment rtest, and the baseline is added to makefile so no need to set baseline everytime you compile, it will be generated automatically by makefile
     113) at present the code is tested with testing environment rtest, and the baseline is added to makefile so set the basline by typing
     12   "make baseline" in the terminal without quotes. baseline will be set. You have to set the baseline first everytime before you test your models
    1213
    13144) Then type the command "make test" or "make" in the terminal window, the omccp will be compiled and ready to run
     
    21228) Open the file "SCRIPT.mos" and look for the comments // add your testfiles here
    2223
    23 9) at present only 21 test cases are tested and remaining are commented, you are free to test the remaining files by uncommenting them.
    24 
    2524Note: you can look a clear picture of the output in the file SCRIPT.mos.
    26 
     25Note: to run the omcc without use of make file use the following ../../../build/bin/omc +g=MetaModelica +d=rml SCRIPT.mos
  • trunk/testsuite/openmodelica/omcc/SCRIPT.mos

    r13244 r13316  
    3232// add your test files here
    3333
    34 {Main.main({"../../testsuite/omcc_test/" + file,"Modelica"}) for file in {"Test1.mo","Test2.mo","Test3.mo","Test4.mo",
     34
     35{Main.main({"../omcc_test/" + file,"Modelica"}) for file in {"Test1.mo","Test2.mo","Test3.mo","Test4.mo",
    3536                                                                          "Test5.mo","Test6.mo","Test7.mo","Test8.mo","Test9.mo","Test10.mo",
    3637                                                                           "Test11.mo","Test12.mo","Test13.mo","Test14.mo","Test15.mo","Test16.mo",
     
    4142// uncomment to run these test cases
    4243/*
    43 {Main.main({"../../testsuite/mofiles/" + file,"Modelica"}) for file in {"Abs.mo","Abs1.mo","AddReal1.mo","Algorithm1.mo","Algorithm3.mo","AlgorithmElseOpt.mo","AlgorithmFor1.mo","AlgorithmFor2.mo","AlgorithmFor3.mo","AlgorithmFor4.mo","AlgorithmFor5.mo"
    44                                                                           ,"AlgorithmFor6.mo","And.mo","Array1.mo","Array2.mo","Array3.mo","Array4.mo","Array5.mo","Array6.mo","Array7.mo","Array8.mo"
     44{Main.main({"../../flattening/modelica/arrays/" + file,"Modelica"}) for file in {"Array1.mo","Array2.mo","Array3.mo","Array4.mo","Array5.mo","Array6.mo","Array7.mo","Array8.mo"
    4545                                                                          ,"Array9.mo","Array10.mo","Array13.mo","Array14.mo","ArrayAccess.mo","ArrayAddition.mo","ArrayAddition2.mo","ArrayAsAlias.mo",
    4646                                                                            "ArrayAsAliasInExtends.mo","ArrayBrackets.mo","ArrayCall.mo","ArrayCurlyBrackets.mo"
     
    4949
    5050
    51 {Main.main({"../../Examples/" + file,"Modelica"}) for file in {"BouncingBall.mo","bubblesort.mo","Circle.mo","dcmotor.mo","ExternalLibraries.mo"
     51{Main.main({"../../flattening/modelica/algorithms-functions/" + file,"Modelica"}) for file in {"Algorithm1.mo","Algorithm3.mo","AlgorithmElseOpt.mo","AlgorithmFor1.mo",
     52                                                                                             "AlgorithmFor2.mo","AlgorithmFor3.mo","AlgorithmFor4.mo","AlgorithmFor5.mo",
     53                                                                                             "AlgorithmFor6.mo"}};                                                                                                                                                           
     54
     55
     56
     57{Main.main({"../../flattening/modelica/built-in-functions/" + file,"Modelica"}) for file in {"Abs.mo","Abs1.mo","Delay.mo","Delay2.mo","Delay3.mo",
     58                                                                                            "Delay4.mo","Delay6.mo","DerConstant1.mo","DerConstant2.mo"}};
     59
     60
     61{Main.main({"../../flattening/modelica/operators/" + file,"Modelica"}) for file in {"And.mo"}};
     62
     63{Main.main({"../../flattening/modelica/external-functions/" + file,"Modelica"}) for file in {"AddReal1.mo"}};
     64
     65{Main.main({"../../flattening/modelica/others/" + file,"Modelica"}) for file in{"BooleanLiterals.mo","Class1.mo",
     66                                                                                   "Comment1.mo"}};
     67
     68
     69
     70
     71{Main.main({"../../../Examples/" + file,"Modelica"}) for file in {"BouncingBall.mo","bubblesort.mo","Circle.mo","dcmotor.mo","ExternalLibraries.mo"
    5272                                                                ,"HelloWorld.mo","Influenza.mo","SimpleIntegrator.mo","Switch.mo","VanDerPol.mo"
    5373                                                                  ,"visualize_3D_BouncingBall.mo"}};
    5474
    5575
    56 
    57 
    58 {Main.main({"../../testsuite/mofiles/" + file,"Modelica"}) for file in {"ArrayDivision.mo","ArrayEWOps1.mo","ArrayEWOps2.mo","ArrayEWOps3.mo",
     76{Main.main({"../../flattening/modelica/arrays/" + file,"Modelica"}) for file in {"ArrayDivision.mo","ArrayEWOps1.mo","ArrayEWOps2.mo","ArrayEWOps3.mo",
    5977                                                                         "ArrayEWOps4.mo","ArrayEWOps5.mo","ArrayEWOps6.mo","ArrayEWOpsCEval1.mo",
    6078                                                                        "ArrayEWOpsCEval2.mo","ArrayEWOpsCEval3.mo","ArrayEWOpsCEval4.mo","ArrayEWOpsCEval5.mo",
    6179                                                                         "ArrayExtend.mo","ArrayExtendsUnknown.mo","ArrayIndex.mo","ArrayIndex2.mo",
    62                                                                          "ArrayLogic.mo","ArrayMatrixSimplifier.mo","BooleanLiterals.mo","Class1.mo",
    63                                                                          "Circle.mo","Comment1.mo","DeclarationOrder.mo","DeclarationOrder1.mo","DeclarationOrder2.mo",
    64                                                                           "Delay.mo","Delay2.mo","Delay3.mo","Delay4.mo","Delay6.mo","DerConstant1.mo","DerConstant2.mo"}};
     80                                                                         "ArrayLogic.mo","ArrayMatrixSimplifier.mo"}};
     81
     82
     83  {Main.main({"../../flattening/modelica/declarations/" + file,"Modelica"}) for file in{"DeclarationOrder.mo","DeclarationOrder1.mo","DeclarationOrder2.mo"}};
     84
    6585*/
    6686
    67 
    6887// run this to test the full modelica grammar
    69 // Main.main({"../../testsuite/omcc_test/fulltest.mo","Modelica"});
     88// Main.main({"../omcc_test/fulltest.mo","Modelica"});
    7089
    7190
    7291
    7392getErrorString();
    74 // Result:
    75 // true
    76 // true
    77 // true
    78 // true
    79 // true
    80 // true
    81 // true
    82 // true
    83 // true
    84 // true
    85 // true
    86 // true
    87 // true
    88 // true
    89 // true
    90 // true
    91 // true
    92 // true
    93 // true
    94 // true
    95 // true
    96 // true
    97 // true
    98 // true
    99 // true
    100 //
    101 // "[LexerModelica.mo:183:7-183:41:writable] Error: Local variable 'c' shadows another variable.
    102 // "
    103 // endResult
Note: See TracChangeset for help on using the changeset viewer.