private static string Location(TokenItem current) { if (current == null) { return(""); } return($" at line {current.Line} column {current.Column} index {current.Index}"); }
TokenItem CreateToken(string name, string value, int?index = null) { var token = new TokenItem() { Index = index ?? Index - value.Length, Column = Column - value.Length, Line = Line, Value = value, Token = new Token() { Name = name } }; return(token); }
public PascalProgramNode(TokenItem name, BlockNode block) { ProgramName = name?.Value; Block = block; TokenItem = name; }
public HaltException(ErrorCode error, TokenItem token, string message, Exception ex = null) : base(error, token, message, ex) { }
public SemanticException(ErrorCode error, TokenItem token, string message) : base(error, token, message) { }
public ParserException(ErrorCode error, TokenItem token, string message) : base(error, token, message) { }
public PascalException(ErrorCode error, TokenItem token, string message, Exception ex) : base(message + Location(token), ex) { Error = error; Token = token; }
public PascalException(ErrorCode error, TokenItem token, string message) : this(error, token, message, null) { }
public AssignmentNode(VariableOrFunctionCall left, TokenItem item, Node right) { Left = left; Right = right; TokenItem = item; }
public BinaryOperator(Node left, Node right, TokenItem @operator) { Left = left; Right = right; TokenItem = @operator; }