/// <summary> /// Registers a token type to a new BinaryOperatorParselet /// </summary> /// <param name="opToken">Token type to register</param> /// <param name="precedence">Precedence of operator</param> /// <param name="rightAssociative">If the operator is right-associative or not</param> public static void RegisterBinaryOperator(TokenType opToken, Precedence precedence, bool rightAssociative = false) { Logger.Log(LogLevel.Debug, Logger.REGISTRY, "Registering binary operator parselet for token " + opToken.ToString()); InfixParselets.Add(opToken, new BinaryOperatorParselet(precedence, rightAssociative)); }
/// <summary> /// Registers a token type to a new PostfixOperatorParselet /// </summary> /// <param name="opToken">Token type to register</param> public static void RegisterPostfixOperator(TokenType opToken) { Logger.Log(LogLevel.Debug, Logger.REGISTRY, "Registering postfix operator parselet for token " + opToken.ToString()); InfixParselets.Add(opToken, new PostfixOperatorParselet(Precedence.POSTFIX)); }
/// <summary> /// Registers a token type to an infix parselet /// </summary> /// <param name="token">Token type to register</param> /// <param name="parselet">Parselet to register to</param> public static void RegisterInfix(TokenType token, IInfixParselet parselet) { Logger.Log(LogLevel.Debug, Logger.REGISTRY, "Registering infix/postfix operator parselet for token " + token.ToString()); InfixParselets.Add(token, parselet); }