From 86099f4809f8e0874a238b82fbba71f1c0fe2c9b Mon Sep 17 00:00:00 2001 From: ChangAo Date: Mon, 21 Sep 2026 07:05:18 +0000 Subject: [PATCH 1/2] This closes #20, fix leading plus operator parsing in formulas - Upgrade GitHub Actions workflow, remove test build on RISC-V platform --- efp.go | 6 +++++- efp_test.go | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/efp.go b/efp.go index 9723382..1ffbf7f 100644 --- a/efp.go +++ b/efp.go @@ -579,7 +579,11 @@ func (ps *Parser) getTokens() Tokens { if (token.TType == TokenTypeOperatorInfix) && (len(token.TValue) == 1 && token.TValue[0] == '+') { if tokens2.BOF() { - token.TType = TokenTypeNoop + if tokens2.EOF() { + token.TType = TokenTypeNoop + } else { + token.TSubType = TokenSubTypeMath + } } else if (tokens2.previous().TType == TokenTypeFunction) && (tokens2.previous().TSubType == TokenSubTypeStop) || ((tokens2.previous().TType == TokenTypeSubexpression) && (tokens2.previous().TSubType == TokenSubTypeStop) || (tokens2.previous().TType == TokenTypeOperatorPostfix) || (tokens2.previous().TType == TokenTypeOperand)) { token.TSubType = TokenSubTypeMath } else { diff --git a/efp_test.go b/efp_test.go index 79030db..c7cd08a 100644 --- a/efp_test.go +++ b/efp_test.go @@ -50,6 +50,7 @@ func TestEFP(t *testing.T) { `=1 ''`, `=10*2^(2*(1+1))% (=10.28114; % has greater precedence than ^)`, `=2+(10*2^(2*(1+1)+SUM(A2)))*3 (who knows, but you'll push and pop here multiple times)`, + `'C:\Docs\Book[A-B.XLS]C-D'!$BC14`, // E. W. Bachtal's test formulae `=IF(P5=1.0,"NA",IF(P5=2.0,"A",IF(P5=3.0,"B",IF(P5=4.0,"C",IF(P5=5.0,"D",IF(P5=6.0,"E",IF(P5=7.0,"F",IF(P5=8.0,"G"))))))))`, `={SUM(B2:D2*B3:D3)}`, From b0b89d418ec75b605297eac5bee8d89a7cfc9175 Mon Sep 17 00:00:00 2001 From: ChangAo Date: Mon, 21 Sep 2026 07:05:27 +0000 Subject: [PATCH 2/2] Upgrade GitHub Actions workflow, remove test build on RISC-V platform --- .github/workflows/go.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index cde2afa..327dbed 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -27,16 +27,6 @@ jobs: - name: Build run: go build -v . - - name: Build on ARM and RISC-V - if: runner.os == 'Linux' - run: | - GOARCH=arm GOARM=5 go build . - GOARCH=arm GOARM=6 go build . - GOARCH=arm GOARM=7 go build . - GOARCH=arm64 go build . - GOARCH=arm64 GOOS=android go build . - GOARCH=riscv64 go build . - - name: Test run: go test -v -race -coverprofile='coverage.txt' -covermode=atomic ./...