github.com/nevalang/neva@v0.23.1-0.20240507185603-7696a9bb8dda/internal/compiler/parser/err_handler.go (about)

     1  package parser
     2  
     3  import (
     4  	"errors"
     5  
     6  	"github.com/antlr4-go/antlr/v4"
     7  	"github.com/nevalang/neva/internal/compiler"
     8  	"github.com/nevalang/neva/internal/compiler/sourcecode/core"
     9  )
    10  
    11  type CustomErrorListener struct {
    12  	*antlr.DefaultErrorListener
    13  	Errors []error
    14  }
    15  
    16  func (c *CustomErrorListener) SyntaxError(
    17  	_ antlr.Recognizer,
    18  	offendingSymbol any,
    19  	line, column int,
    20  	msg string,
    21  	e antlr.RecognitionException,
    22  ) {
    23  	c.Errors = append(c.Errors, compiler.Error{
    24  		Err: errors.New(msg),
    25  		Meta: &core.Meta{
    26  			Start: core.Position{
    27  				Line:   line,
    28  				Column: column,
    29  			},
    30  		},
    31  	})
    32  }