[lib] remove out-of-date files
This commit is contained in:
parent
23e3d37b3d
commit
df1b8ae892
|
@ -1,100 +0,0 @@
|
||||||
/* (C) 2018 - genBTC, All Rights Reserved */
|
|
||||||
/* November 17, 2018 */
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <fstream>
|
|
||||||
#include <string>
|
|
||||||
#include <sstream>
|
|
||||||
#include <vector>
|
|
||||||
#include <algorithm>
|
|
||||||
#include <map>
|
|
||||||
#include <climits>
|
|
||||||
|
|
||||||
bool VERBOSE_V_MODE = true;
|
|
||||||
struct PCFlayout {
|
|
||||||
std::string pinName; //with the [7:0] bitfield(maybe)
|
|
||||||
int pinNameBit = 0;
|
|
||||||
std::string pinNameBase; //without the bitfield
|
|
||||||
std::string pinNum;
|
|
||||||
int pinNumInt;
|
|
||||||
std::string comment;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define TEST_PRINT_PCFREAD_CHECK 0
|
|
||||||
|
|
||||||
std::vector<PCFlayout> parsePCF(const char* pcffile) {
|
|
||||||
std::vector<PCFlayout> v;
|
|
||||||
std::ifstream input(pcffile); // open the file
|
|
||||||
std::string line; // iterate each line
|
|
||||||
while (std::getline(input, line)) { // getline returns the stream by reference, so this handles EOF
|
|
||||||
std::stringstream ss(line); // create a stringstream out of each line
|
|
||||||
PCFlayout PCF_node; // start a new node
|
|
||||||
while (ss) { // while the stream is good
|
|
||||||
std::string word; // get first word
|
|
||||||
if (ss >> word) { // if first word is set_io
|
|
||||||
if (word.find("set_io") == 0) {
|
|
||||||
ss >> PCF_node.pinName >> PCF_node.pinNum;
|
|
||||||
if (PCF_node.pinNum != "")
|
|
||||||
PCF_node.pinNumInt = std::stoi(PCF_node.pinNum);
|
|
||||||
//strip out the [ ]
|
|
||||||
auto loc = PCF_node.pinName.find('[');
|
|
||||||
if (loc != std::string::npos) {
|
|
||||||
PCF_node.pinNameBit = std::stoi(PCF_node.pinName.substr(loc + 1, PCF_node.pinName.find(']') - 1));
|
|
||||||
PCF_node.pinNameBase = PCF_node.pinName; //copy the full string, then
|
|
||||||
PCF_node.pinNameBase.erase(loc); //remove the [bitfield] part
|
|
||||||
}
|
|
||||||
//no break statement, means keep checking (next iteration, for comments)
|
|
||||||
}
|
|
||||||
else if (word[0] == '#') { // if it's a comment
|
|
||||||
int commentpos = line.find("#");
|
|
||||||
//if its not at the beginning of the line, store it
|
|
||||||
if (commentpos != 0)
|
|
||||||
PCF_node.comment = line.substr(commentpos);
|
|
||||||
break; //or ignore the full line comment and move on
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
std::cerr << "Unresolved Symbol: '" << word << "'\n"; // report unexpected data
|
|
||||||
break; //and move onto next line. without this, it will accept more following values on this line
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (PCF_node.pinName == "") continue;
|
|
||||||
v.push_back(PCF_node);
|
|
||||||
}
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void printParsedPCFcheck(std::vector<PCFlayout> &pcfnodes)
|
|
||||||
{
|
|
||||||
//visually prints PCF input data we just read into the vector - to check validity, as a Unit Test
|
|
||||||
if (TEST_PRINT_PCFREAD_CHECK) {
|
|
||||||
std::cout << "Printing Parsed PCF:\n";
|
|
||||||
for (auto node : pcfnodes) {
|
|
||||||
if (node.pinName.length() != 0)
|
|
||||||
std::cout << "set_io" << " " << node.pinName << " " << node.pinNum << " " << node.comment << std::endl;
|
|
||||||
}
|
|
||||||
std::cout << "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool hasDuplicatePinErrorsMap(std::vector<PCFlayout> &v1, std::map<int, PCFlayout> &pcfMap) {
|
|
||||||
bool hasdupes{ false }; int dupes_found = 0;
|
|
||||||
|
|
||||||
for (auto vi : v1) {
|
|
||||||
//Check map for duplicate
|
|
||||||
if (pcfMap.find(vi.pinNumInt) != pcfMap.end()) {
|
|
||||||
hasdupes = true; ++dupes_found;
|
|
||||||
std::cout << "Duplicate Pin: " << vi.pinNum << " = " << vi.pinName << " <-- Re-definition error.\n";
|
|
||||||
std::cout << ">Original Pin: " << pcfMap[vi.pinNumInt].pinNum << " = " << pcfMap[vi.pinNumInt].pinName << "\n";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pcfMap[vi.pinNumInt] = vi;
|
|
||||||
if (VERBOSE_V_MODE)
|
|
||||||
std::cout << "Checking: " << vi.pinNum << " = " << vi.pinName << "\n";
|
|
||||||
}
|
|
||||||
if (hasdupes || dupes_found)
|
|
||||||
std::cout << "\n" << dupes_found << " Duplicates Found\n";
|
|
||||||
return hasdupes;
|
|
||||||
}
|
|
Loading…
Reference in New Issue