Guest User

Untitled

a guest
May 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.52 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // FlexibleComputerLanguage
  4. //
  5. // Created by Dileepa Jayathilaka on 5/8/18.
  6. // Copyright (c) 2018 Dileepa Jayathilaka. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include "Tests.h"
  11. #include "json.hpp"
  12. #include "MemMan.h"
  13. #include "Node.h"
  14. #include "DefFileReader.h"
  15. #include "ScriptReader.h"
  16. #include "MetaData.h"
  17. #include "ExecutionTemplateList.h"
  18. #include "ExecutionContext.h"
  19.  
  20. using json = nlohmann::json;
  21.  
  22. int id = 0;
  23.  
  24. void print(json j, Node* root)
  25. {
  26. for (auto& x : json::iterator_wrapper(j))
  27. {
  28. json a = x.value();
  29. if (a.is_object() || a.is_array())
  30. {
  31. std::cout << "going inside" << '\n';
  32. print(a, root);
  33. } else {
  34. Node* n = MemoryManager::Inst.CreateNode(++id);
  35. n->SetLValue((char *)x.key().c_str());
  36. n->SetValue((char *)x.value().dump().c_str());
  37. n->SetLValue((char *)x.value().dump().c_str());
  38. // n->SetRValue(x.value().c_str());
  39. root->AppendNode(n);
  40.  
  41. std::cout << "key: " << x.key() << ", value: " << x.value() << '\n';
  42. }
  43. }
  44. }
  45.  
  46. void run(Node* root)
  47. {
  48. DefFileReader dfr;
  49. MetaData* pMD = dfr.Read("/Users/MurtazaA/99X/Backend/FlexibleComputerLanguage/tests/test5/Defs.txt");
  50. ScriptReader sr;
  51. ScriptReaderOutput op;
  52. bool bSucc = sr.ProcessScript(pMD->s_RuleFileName, pMD, op);
  53. if(!bSucc)
  54. {
  55. std::wcout<<"\nFailed to read script\n";
  56. }
  57. ExecutionContext ec;
  58. ec.p_mapFunctions = &op.map_Functions;
  59. ec.p_MD = pMD;
  60. Node* pY = MemoryManager::Inst.CreateNode(++id);
  61. ec.map_Var["X"] = root;
  62. ec.map_Var["Y"] = pY;
  63. op.p_ETL->Execute(&ec);
  64. }
  65.  
  66. int main(int argc, const char * argv[])
  67. {
  68. Node* root = MemoryManager::Inst.CreateNode(++id);
  69. root->AddNode();
  70. std::cout << root->GetID();
  71. json j1 = {"one", "two", 3, 4.5, false, {{"a", "aa"},{"b","bb"}}};
  72. json j = "[{\"00208\":{\"id\":\"5af2d44f7233140001b9aa25\",\"previousIDs\":[\"5af2d3ca7233140001b9aa23\"],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00208\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00208\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.559Z\",\"traceabilityData\":[{\"type\":5,\"key\":\"orderId\",\"val\":\"1066\"}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.559Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null},\"00207\":{\"id\":\"5af2d3ca7233140001b9aa23\",\"previousIDs\":[\"5af2d37c7233140001b9aa21\"],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00207\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00207\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.561Z\",\"traceabilityData\":[{\"type\":3,\"key\":\"packedDateAndTime\",\"val\":\"2018-06-09T10:57:00.000Z\"},{\"type\":7,\"key\":\"packingType\",\"val\":\"MAP\"},{\"type\":7,\"key\":\"packingMode\",\"val\":\"Retail\"},{\"type\":1,\"key\":\"packSize\",\"val\":500},{\"type\":0,\"key\":\"readyToConsume\",\"val\":true}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.561Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null},\"00206\":{\"id\":\"5af2d37c7233140001b9aa21\",\"previousIDs\":[\"5af2d3487233140001b9aa1f\"],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00206\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00206\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.562Z\",\"traceabilityData\":[{\"type\":7,\"key\":\"typeOfStorage\",\"val\":\"Ambient (F)\"},{\"type\":1,\"key\":\"temperature\",\"val\":27},{\"type\":1,\"key\":\"humidity\",\"val\":80}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.562Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null},\"00205\":{\"id\":\"5af2d3487233140001b9aa1f\",\"previousIDs\":[\"5af2d2af7233140001b9aa1d\"],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00205\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00205\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.563Z\",\"traceabilityData\":[{\"type\":1,\"key\":\"quantityIn\",\"val\":7},{\"type\":7,\"key\":\"productHandling\",\"val\":\"Triple Washed\"},{\"type\":7,\"key\":\"gradingOnSize\",\"val\":\"Small\"},{\"type\":7,\"key\":\"gradingOnRipeness\",\"val\":\"Ripe\"},{\"type\":7,\"key\":\"gradingOnMaturity\",\"val\":\"Mature\"},{\"type\":0,\"key\":\"productGraded\",\"val\":true},{\"type\":1,\"key\":\"cleanedQuantity\",\"val\":6}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.563Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null},\"00204\":{\"id\":\"5af2d2af7233140001b9aa1d\",\"previousIDs\":[\"5af2d2207233140001b9aa1b\"],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00204\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00204\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.563Z\",\"traceabilityData\":[{\"type\":3,\"key\":\"receivedDateAndTime\",\"val\":\"2018-04-09T10:52:00.000Z\"},{\"type\":1,\"key\":\"receivedQuantity\",\"val\":10},{\"type\":1,\"key\":\"acceptedQuantity\",\"val\":7},{\"type\":7,\"key\":\"reasonsForRejects\",\"val\":\"Not Complying to Specification\"},{\"type\":4,\"key\":\"photos\"}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.563Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null},\"00203\":{\"id\":\"5af2d2207233140001b9aa1b\",\"previousIDs\":[\"5af2d1aa7233140001b9aa19\"],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00203\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00203\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.564Z\",\"traceabilityData\":[{\"type\":7,\"key\":\"trasportProvider\",\"val\":\"Farmer\"},{\"type\":3,\"key\":\"startDateAndTime\",\"val\":\"2018-03-09T10:49:00.000Z\"},{\"type\":5,\"key\":\"vehicleNumber\",\"val\":\"WP CQ1122\"},{\"type\":5,\"key\":\"driverName\",\"val\":\"ABC Perera\"},{\"type\":0,\"key\":\"vehicleColdChainMaintained\",\"val\":true},{\"type\":1,\"key\":\"loadedQuantity\",\"val\":10}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.564Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null},\"00201\":{\"id\":\"5af2d1967233140001b9aa17\",\"previousIDs\":[],\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00201\",\"traceabilityDataPackets\":[{\"tenantID\":\"afb56d80-2d95-11e8-88f3-03122bd405e1\",\"stageID\":\"00201\",\"userID\":\"\",\"timestamp\":\"2018-05-16T08:07:50.564Z\",\"traceabilityData\":[{\"type\":6,\"key\":\"farm\",\"val\":{\"location\":\"Bagathale\",\"farmerName\":\"Siripala\",\"farmName\":\"Bagathale Farm\"}},{\"type\":7,\"key\":\"weedingType\",\"val\":\"Manual\"}],\"traceabilityProfileIDs\":null,\"workflowRevision\":0}],\"timestamp\":\"2018-05-16T08:07:50.564Z\",\"item\":{\"itemName\":\"Avocado\",\"itemID\":\"5ab35a5da052b50014e94014\"},\"identifier\":null}}]"_json;
  73. // Tests t = Tests();
  74. // t.RunTest1();
  75. print(j, root);
  76. run(root);
  77. std::cout << "Hello, World! Murtaza here!\n";
  78. return 0;
  79. }
Add Comment
Please, Sign In to add comment