public NonTerninalExp CreateCommand(List <Token> tokens) { var closeBracketIndex = TokenHelper.GetIndexPairBracket(tokens, 0); List <Token> tok = tokens.GetRange(1, closeBracketIndex - 1); tok.Add(new Token { TokenType = TokenType.EmptyEndCommand, Value = "end" }); BracketsCommand com = new BracketsCommand(SyntaxAnalyser.Analyse(tok)); com.SetNext(SyntaxAnalyser.Analyse(tokens.GetRange( closeBracketIndex + 1, tokens.Count - closeBracketIndex - 1))); return(com); }
public NonTerninalExp CreateCommand(List <Token> tokens) { var closeParenthesisIndex = TokenHelper.GetIndexPairParanthesis(tokens, 1); var exp = TerminalExpressionAnalyser.Analyse(tokens.GetRange(2, closeParenthesisIndex - 2)); var command = new ConditionCommand(exp); var closeBracketsIndex = TokenHelper.GetIndexPairBracket(tokens, closeParenthesisIndex + 1); BracketsCommand insideCom = (BracketsCommand)SyntaxAnalyser.Analyse(tokens.GetRange( closeParenthesisIndex + 1, tokens.Count - closeParenthesisIndex - 1)); insideCom.SetNext(command); command.SetPositiveNext(insideCom); command.SetNegativeNext(SyntaxAnalyser.Analyse(tokens.GetRange( closeBracketsIndex + 1, tokens.Count - closeBracketsIndex - 1))); return(command); }