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:
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 {