computerscare-vcv-modules

computerscare modules for VCV Rack
Log | Files | Refs

commit ee788830815e1199fe72fd54afa518a24bee3ce9
parent b79aed5b78095f80677e6ad4b83524d9b6db3b64
Author: Adam Malone <1319733+freddyz@users.noreply.github.com>
Date:   Wed, 21 Nov 2018 16:15:37 -0600

begin token parser

Diffstat:
Msrc/dtpulse.cpp | 15+++++++++++++++
Msrc/dtpulse.hpp | 10+++++++++-
Msrc/test.cpp | 7++++++-
3 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/dtpulse.cpp b/src/dtpulse.cpp @@ -263,3 +263,18 @@ std::string concatVectorFromLookup(std::vector<int> vector, std::string lookup) } return output; } +Token::Token(int i, std::string v) { + type = i; + val = v; +} +void Token::print() { + printf("type:%i, val:%s\n",type,val.c_str()); +} +std::vector<Token> tokenizeString(std::string input) { + std::vector<Token> stack; + for(unsigned int i = 0; i < input.length(); i++) { + std::string token(1,input[i]); + stack.push_back(Token(0,token)); + } + return stack; +} diff --git a/src/dtpulse.hpp b/src/dtpulse.hpp @@ -14,7 +14,13 @@ extern std::string knoblookup; extern std::string inputlookup; extern std::string knobandinputlookup; #endif - +class Token { + public: + int type; + std::string val; + Token(int t, std::string v); + void print(); +}; bool is_digits(const std::string &str); void padTo(std::string &str, const size_t num, const char paddingChar ); std::vector <int> parseString(std::string expr); @@ -30,3 +36,5 @@ std::string hashExpand(std::string input, int hashnum); std::string atExpand(std::string input, int atnum, std::string lookup); std::string countExpand(std::string input, int atnum); std::string concatVectorFromLookup(std::vector<int> vector, std::string lookup); +std::vector<Token> tokenizeString(std::string input); + diff --git a/src/test.cpp b/src/test.cpp @@ -32,7 +32,12 @@ int main(int argc, char** argv) strResult = concatVectorFromLookup(output,knobandinputlookup); printf("%s\n",strResult.c_str()); } - + else if(type==5) { + std::vector<Token> stack = tokenizeString(argv[1]); + for(int i = 0; i < stack.size(); i++) { + stack[i].print(); + } + } return 0; } void printVector(std::vector <int> intVector) {