public LiteralArrayGet(Token startToken, Token endToken, List <Expression> elements) { startToken.AssertKeySymbol(Symbols.OpenSquareBracket); endToken.AssertKeySymbol(Symbols.CloseSquareBracket); StartToken = startToken; EndToken = endToken; Elements = elements; startToken.ExpressionHint = this; endToken.ExpressionHint = this; }
public Indexer(Expression source, Token opener, Expression index, Token closer) { opener.AssertKeySymbol(Symbols.OpenSquareBracket); closer.AssertKeySymbol(Symbols.CloseSquareBracket); SourceExpression = source; OpeningBracket = opener; IndexExpression = index; ClosingBracket = closer; opener.ExpressionHint = this; closer.ExpressionHint = this; }
public FunctionCall(Token nameToken, Token openingToken, Token endToken, List <Expression> arguments) { nameToken.AssertName(); endToken.AssertKeySymbol(Symbols.CloseBracket); NameToken = nameToken; OpeningBracketToken = openingToken; ClosingBracketToken = endToken; Arguments = arguments; NameToken.Hints |= TokenHints.Function; nameToken.ExpressionHint = this; openingToken.ExpressionHint = this; endToken.ExpressionHint = this; }
public FunctionHeader(Token typeToken, Token nameToken, Token openToken, Token endToken, FunctionSignature signature, IReadOnlyList <string> parameterNames) { nameToken.AssertName(); endToken.AssertKeySymbol(Symbols.CloseBracket); ReturnType = typeToken.AssertType(); TypeToken = typeToken; NameToken = nameToken; ClosingBracket = endToken; Signature = signature; ParameterNames = parameterNames; NameToken.Hints |= TokenHints.Function; typeToken.ExpressionHint = this; nameToken.ExpressionHint = this; endToken.ExpressionHint = this; }
public void AssertKeySymbol(char symbol, out Token token) { Assert(out token); token.AssertKeySymbol(symbol); }