fix: Phase 2 — HIGH #6,9,10,11,12,19,23,32,46,47
Files modified (5):
compiler/gengo/gengo.go — #6,#32: Deduplicate 3 Generate functions into 1
doGenerate(file, debug, library) replaces 170 lines of copy-paste
Dead GenerateDebug method removed
cmd/five/main.go — #9,10,11,12: Fix 5 silently ignored errors
filepath.Abs, tidy.Run, tidyCmd.CombinedOutput now checked
hbrtl/strings.go — #19: Str() now reads caller's nWidth/nDec params
Was ignoring explicit Str(123, 10, 2) arguments
compiler/pp/pp.go — #46: Fix stale "NOT implemented" comment
#47: Extract maxIncludeDepth constant
compiler/lexer/lexer.go — #23: Remove unused LookupKeyword result
Issues resolved: 10 (HIGH: 7, MEDIUM: 3)
Total fixed: 26/53
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,9 +11,8 @@
|
||||
// #ifdef NAME / #ifndef NAME / #else / #endif — conditional compilation
|
||||
// #pragma — compiler hints
|
||||
//
|
||||
// #command/#translate (used by hbclass.ch) is NOT implemented yet.
|
||||
// Five handles CLASS syntax natively in the parser, so hbclass.ch
|
||||
// is not strictly required. But #include is needed for user headers.
|
||||
// #command/#translate is supported via command.go (pattern matching + substitution).
|
||||
// Five also handles CLASS syntax natively in the parser.
|
||||
package pp
|
||||
|
||||
import (
|
||||
@@ -78,9 +77,11 @@ func (pp *Preprocessor) Process(filename, source string) (string, []string) {
|
||||
return result, pp.errors
|
||||
}
|
||||
|
||||
const maxIncludeDepth = 20
|
||||
|
||||
func (pp *Preprocessor) processLines(filename, source string, depth int) string {
|
||||
if depth > 20 {
|
||||
pp.errors = append(pp.errors, fmt.Sprintf("%s: #include depth exceeded (max 20)", filename))
|
||||
if depth > maxIncludeDepth {
|
||||
pp.errors = append(pp.errors, fmt.Sprintf("%s: #include depth exceeded (max %d)", filename, maxIncludeDepth))
|
||||
return source
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user