From 8c60c8cf7acb3563b31d9d17ba1303efe3f0aa39 Mon Sep 17 00:00:00 2001 From: Astatin Date: Fri, 7 Mar 2025 23:54:34 +0900 Subject: add high/low paramters modifiers, parameters to macros & print symbols to stdout --- instructions.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'instructions.go') diff --git a/instructions.go b/instructions.go index ca3df54..66c6d97 100644 --- a/instructions.go +++ b/instructions.go @@ -522,6 +522,7 @@ func (set InstructionSet) Parse( params := words[1:] + var rejectedErrors error instruction_param_loop: for _, instrParam := range instruction { if !instrParam.Wildcard && len(instrParam.Types) != len(params) { @@ -544,6 +545,12 @@ instruction_param_loop: } parsed, err := paramType(accessibleLabels, lastAbsoluteLabel, defs, params[i]) if err != nil { + rejectedError := fmt.Errorf("\t[Rejected] Param Type %v: %w\n", paramType, err) + if rejectedErrors == nil { + rejectedErrors = rejectedError + } else { + rejectedErrors = fmt.Errorf("%w%w", rejectedErrors, rejectedError) + } continue instruction_param_loop } @@ -557,8 +564,9 @@ instruction_param_loop: return instrParam.Assembler(currentAddress, parsed_params) } return nil, fmt.Errorf( - "Instruction \"%s\" doesn't have a parameter set that can parse \"%s\"", + "Instruction \"%s\" doesn't have a parameter set that can parse \"%s\"\n%w", words[0], line, + rejectedErrors, ) } -- cgit v1.2.3-70-g09d2