mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	* grammars: Update several grammars with compat issues * [WIP] Add new grammar conversion tools * Wrap in a Docker script * Proper Dockerfile support * Add Javadoc grammar * Remove NPM package.json * Remove superfluous test This is now always checked by the grammars compiler * Update JSyntax grammar to new submodule * Approve Javadoc license * grammars: Remove checked-in dependencies * grammars: Add regex checks to the compiler * grammars: Point Oz to its actual submodule * grammars: Refactor compiler to group errors by repo * grammars: Cleanups to error reporting
		
			
				
	
	
		
			86 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package compiler
 | 
						|
 | 
						|
import "fmt"
 | 
						|
import "strings"
 | 
						|
 | 
						|
type ConversionError struct {
 | 
						|
	Path string
 | 
						|
	Err  error
 | 
						|
}
 | 
						|
 | 
						|
func (err *ConversionError) Error() string {
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Grammar conversion failed. File `%s` failed to parse: %s",
 | 
						|
		err.Path, err.Err)
 | 
						|
}
 | 
						|
 | 
						|
type DuplicateScopeError struct {
 | 
						|
	Original  *Repository
 | 
						|
	Duplicate string
 | 
						|
}
 | 
						|
 | 
						|
func (err *DuplicateScopeError) Error() string {
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Duplicate scope in repository: scope `%s` was already defined in %s",
 | 
						|
		err.Duplicate, err.Original)
 | 
						|
}
 | 
						|
 | 
						|
type MissingScopeError struct {
 | 
						|
	Scope string
 | 
						|
}
 | 
						|
 | 
						|
func (err *MissingScopeError) Error() string {
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Missing scope in repository: `%s` is listed in grammars.yml but cannot be found",
 | 
						|
		err.Scope)
 | 
						|
}
 | 
						|
 | 
						|
type UnexpectedScopeError struct {
 | 
						|
	File  *LoadedFile
 | 
						|
	Scope string
 | 
						|
}
 | 
						|
 | 
						|
func (err *UnexpectedScopeError) Error() string {
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Unexpected scope in repository: `%s` declared in %s was not listed in grammars.yml",
 | 
						|
		err.Scope, err.File)
 | 
						|
}
 | 
						|
 | 
						|
type MissingIncludeError struct {
 | 
						|
	File    *LoadedFile
 | 
						|
	Include string
 | 
						|
}
 | 
						|
 | 
						|
func (err *MissingIncludeError) Error() string {
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Missing include in grammar: %s attempts to include `%s` but the scope cannot be found",
 | 
						|
		err.File, err.Include)
 | 
						|
}
 | 
						|
 | 
						|
type UnknownKeysError struct {
 | 
						|
	File *LoadedFile
 | 
						|
	Keys []string
 | 
						|
}
 | 
						|
 | 
						|
func (err *UnknownKeysError) Error() string {
 | 
						|
	var keys []string
 | 
						|
	for _, k := range err.Keys {
 | 
						|
		keys = append(keys, fmt.Sprintf("`%s`", k))
 | 
						|
	}
 | 
						|
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Unknown keys in grammar: %s contains invalid keys (%s)",
 | 
						|
		err.File, strings.Join(keys, ", "))
 | 
						|
}
 | 
						|
 | 
						|
type InvalidRegexError struct {
 | 
						|
	File *LoadedFile
 | 
						|
	Err  error
 | 
						|
}
 | 
						|
 | 
						|
func (err *InvalidRegexError) Error() string {
 | 
						|
	return fmt.Sprintf(
 | 
						|
		"Invalid regex in grammar: %s contains a malformed regex (%s)",
 | 
						|
		err.File, err.Err)
 | 
						|
}
 |