New operator %=

This commit is contained in:
2024-12-19 15:14:30 +01:00
parent 6ee21e10af
commit 8e5550bfa7
7 changed files with 21 additions and 166 deletions
-57
View File
@@ -513,16 +513,6 @@ func (parser *parser) parseGeneral(scanner *scanner, ctx parserContext, termSymb
// Colon outside a selector term acts like a separator
firstToken = true
}
// case SymPlusEqual:
// opTk := NewToken(tk.row, tk.col, SymEqual, "=")
// if _, err = tree.addToken(opTk); err == nil {
// if err = tree.addTerm(tree.root.Clone()); err == nil {
// opTk = NewToken(tk.row, tk.col, SymPlus, "+")
// currentTerm, err = tree.addToken(opTk)
// }
// }
// case SymStarEqual:
// currentTerm, err = parser.expandOpAssign(scanner, tree, tk, ctx, termSymbols)
default:
currentTerm, err = tree.addToken(tk)
}
@@ -560,50 +550,3 @@ func (parser *parser) parseGeneral(scanner *scanner, ctx parserContext, termSymb
// }
// return
// }
// func (parser *parser) expandOpAssign(scanner *scanner, tree *ast, tk *Token, ctx parserContext, termSymbols []Symbol) (t *term, err error) {
// var opSym Symbol
// var opString string
// if tree.root != nil {
// switch tk.Sym {
// case SymPlusEqual:
// opString = "+"
// opSym = SymPlus
// case SymMinusEqual:
// opString = "-"
// opSym = SymMinus
// case SymStarEqual:
// opString = "*"
// opSym = SymStar
// default:
// err = tk.Errorf("unsopported operator %q", tk.source)
// return
// }
// leftExpr := tree.root.Clone()
// leftExpr.setParent(nil)
// if t, err = tree.addToken(NewToken(tk.row, tk.col, SymEqual, "=")); err == nil {
// t = leftExpr
// if err = tree.addTerm(leftExpr); err == nil {
// if t, err = tree.addToken(NewToken(tk.row, tk.col, opSym, opString)); err == nil {
// var subTree *ast
// // if subTree, err = parser.parseGeneral(scanner, ctx, SymEos, SymSemiColon, SymClosedRound, SymClosedBrace, SymClosedSquare); err == nil {
// if subTree, err = parser.parseGeneral(scanner, ctx, termSymbols...); err == nil {
// if scanner.Previous().IsOneOfA(SymSemiColon, SymClosedRound, SymClosedBrace, SymClosedSquare) {
// if err = scanner.UnreadToken(); err != nil {
// return
// }
// }
// subTree.root.priority = priValue
// err = tree.addTerm(newExprTerm(subTree.root))
// t = subTree.root
// }
// }
// }
// }
// } else {
// err = tk.Errorf("left operand of %q must be a variable or a variable expression", tk)
// }
// return
// }