computerscare-vcv-modules

computerscare modules for VCV Rack
Log | Files | Refs

commit 2a047cb151b21066c9a3c852746d598baa70df19
parent 2fbb2248c131089c2bfd6a4cd7e0c0d3fca38a74
Author: Adam Malone <1319733+freddyz@users.noreply.github.com>
Date:   Mon, 17 Dec 2018 16:22:26 -0600

breaking change to dtpulse, need to split up atExpand logic

Diffstat:
Msrc/dtpulse.cpp | 23+++++++++++++++++++++++
Msrc/dtpulse.hpp | 2++
2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/src/dtpulse.cpp b/src/dtpulse.cpp @@ -541,6 +541,15 @@ void Parser::setForAtExpand(Token t) { t = skipAndPeekToken(); } } +void Parser::setForSquareBrackets(Token t) { + while (t.type!="NULL") { + ParseSquareBrackets(t); + if(peekToken().type !="NULL") { + tokenStack.push_back(peekToken()); + } + t = skipAndPeekToken(); + } +} void Parser::ParseExactValue(Token t) { if(t.type=="LeftAngle") { @@ -630,6 +639,19 @@ void Parser::ParseInterleave(Token t) { tokenStack.insert(tokenStack.end(),output.begin(),output.end()); } void Parser::ParseAtExpand(Token t) { + std::vector<Token> proposedTokens; + int atNumn = -1; + while(t.type=="Letter" || t.type=="RandomSequence"||t.type=="ExactValue") { + proposedTokens.push_back(t); + t = skipAndPeekToken(); + } + if(t.type=="At") { + atNum = ParseAtPart(t); + //proposedTokens = countExpandTokens(insideTokens,atNum); + + } +} +void Parser::ParseSquareBrackets(Token t) { std::vector<Token> proposedTokens; int atNum; std::vector<std::vector<Token>> insideOfBrackets; @@ -664,6 +686,7 @@ void Parser::ParseAtExpand(Token t) { // not inside a square bracket else if(t.type=="ExactValue" || t.type=="Letter" || t.type=="RandomSequence") { insideOfBrackets.back().push_back(t); + printf("iob size:%lu\n",insideOfBrackets.size()); } else if(t.type=="Comma") { insideOfBracketsTokens = countExpandTokens(insideOfBrackets,-1); diff --git a/src/dtpulse.hpp b/src/dtpulse.hpp @@ -42,6 +42,7 @@ class Parser { void setForRandoms(Token t); void setForInterleave(Token t); void setForAtExpand(Token t); + void setForSquareBrackets(Token t); bool inError; std::string parseFloat(Token t); std::vector<Token> tokenStack; @@ -54,6 +55,7 @@ class Parser { void ParseRandomSequence(Token t); void ParseInterleave(Token t); void ParseAtExpand(Token t); + void ParseSquareBrackets(Token t); int ParseAtPart(Token t); }; class AbsoluteSequence {