static private ParseTreeElement parseScope(string innerText) { innerText = innerText.Trim(); int indexOfFirstPairOrSpace = findPositionOfFirstPairOrSpace(innerText); if (indexOfFirstPairOrSpace == -1) { indexOfFirstPairOrSpace = 0; } ScopeParseTreeElement resultTreeElement = new ScopeParseTreeElement(); IList <ParseTreeElement> splitedTokensAfterOperation = new List <ParseTreeElement>(); // length correct? string stringAfterOperation = innerText.Substring(0, innerText.Length - 0); IList <string> splitedTokenStringsAfterOperation = splitAfterTokens(stringAfterOperation); foreach (string iterationTokenString in splitedTokenStringsAfterOperation) { splitedTokensAfterOperation.Add(parseRecursive(iterationTokenString)); } resultTreeElement.children = splitedTokensAfterOperation; return(resultTreeElement); }
private static ParseTreeElement parseScope(string innerText) { int indexOfFirstPairOrSpace; string stringBeforeFirstPair; string operationAsString; string stringAfterOperation; ScopeParseTreeElement resultTreeElement; List<string> splitedTokenStringsAfterOperation; List<ParseTreeElement> splitedTokensAfterOperation; innerText = innerText.Trim(); indexOfFirstPairOrSpace = findPositionOfFirstPairOrSpace(innerText); if( indexOfFirstPairOrSpace == -1 ) { indexOfFirstPairOrSpace = 0; } resultTreeElement = new ScopeParseTreeElement(); splitedTokensAfterOperation = new List<ParseTreeElement>(); stringBeforeFirstPair = innerText.Substring(0, indexOfFirstPairOrSpace); stringBeforeFirstPair = stringBeforeFirstPair.Trim(); operationAsString = stringBeforeFirstPair; resultTreeElement.scopeType = translateOperationToOperationType(operationAsString); // length correct? stringAfterOperation = innerText.Substring(indexOfFirstPairOrSpace, innerText.Length - indexOfFirstPairOrSpace); splitedTokenStringsAfterOperation = splitAfterTokens(stringAfterOperation); foreach( string iterationTokenString in splitedTokenStringsAfterOperation ) { splitedTokensAfterOperation.Add(parseRecursive(iterationTokenString)); } resultTreeElement.childrens = splitedTokensAfterOperation; return resultTreeElement; }