Module Name: src Committed By: kre Date: Mon Mar 20 11:26:07 UTC 2017
Modified Files: src/bin/sh: Makefile expand.c expand.h sh.1 Added Files: src/bin/sh: arith_token.c arith_tokens.h arithmetic.c arithmetic.h Removed Files: src/bin/sh: arith.y arith_lex.l Log Message: Finish support for all required $(( )) (shell arithmetic) operators, closing PR bin/50958 That meant adding the assignment operators ('=', and all of the +=, *= ...) Currently, ++, --, and ',' are not implemented (none of those are required by posix) but support for them (most likely ',' first) might be added later. To do this, I removed the yacc/lex arithmetic parser completely, and replaced it with a hand written recursive descent parser, that I obtained from FreeBSD, who earlier had obtained it from dash (Herbert Xu). While doing the import, I cleaned up the sources (changed some file names to avoid requiring a clean build, or signifigant surgery to the obj directories if "build.sh -u" was to be used - "build.sh -u" should work fine as it is now) removed some dashisms, applied some KNF, ... To generate a diff of this commit: cvs rdiff -u -r1.103 -r1.104 src/bin/sh/Makefile cvs rdiff -u -r1.25 -r0 src/bin/sh/arith.y cvs rdiff -u -r1.18 -r0 src/bin/sh/arith_lex.l cvs rdiff -u -r0 -r1.1 src/bin/sh/arith_token.c src/bin/sh/arith_tokens.h \ src/bin/sh/arithmetic.c src/bin/sh/arithmetic.h cvs rdiff -u -r1.102 -r1.103 src/bin/sh/expand.c cvs rdiff -u -r1.19 -r1.20 src/bin/sh/expand.h cvs rdiff -u -r1.125 -r1.126 src/bin/sh/sh.1 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.