Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }