public SyntaxTree(SyntaxTreeType type, List <Token> treeTokens, SyntaxTree parent = null, string startLine = "", string endLine = "") { Type = type; Tokens = treeTokens; Parent = parent; StartLine = startLine; EndLine = endLine; Children = new List <SyntaxTree>(); }
private SyntaxTree GetChildSyntaxTree( SyntaxTreeType treeType, int tokenIndex, TokenType startTokenType, TokenType stopTokenType) { var treeTokens = new List <Token>(); for (var i = tokenIndex + 1; i < Tokens.Count; i++) { var token = Tokens[i]; if (token.TokenType == stopTokenType) { return(new SyntaxTree(treeType, treeTokens, this, Token.DefaultStringForTokenTypes[startTokenType], Token.DefaultStringForTokenTypes[stopTokenType])); } treeTokens.Add(token); } return(new SyntaxTree(SyntaxTreeType.Text, treeTokens, this, Token.DefaultStringForTokenTypes[startTokenType])); }