tcl: [1/3] prepare for jimtcl 0.81 'expr' syntax change 59/6159/2
authorAntonio Borneo <borneo.antonio@gmail.com>
Fri, 9 Apr 2021 23:23:57 +0000 (01:23 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 8 May 2021 08:48:44 +0000 (09:48 +0100)
commitf5657aa76e795e4ed5b13a9f5df943181a123e49
tree312df46d48bcb45a4f6b5588e781bd6b80745ba0
parent82b6a41117fa99e760681d9f31163e7b68357e71
tcl: [1/3] prepare for jimtcl 0.81 'expr' syntax change

Jimtcl commit 1843b79a03dd ("expr: TIP 526, only support a single
arg") drops the support for multi-argument syntax for the TCL
command 'expr'.

In the TCL scripts distributed with OpenOCD there are 1700+ lines
that should be modified before switching to jimtcl 0.81.

Apply the script below on every script in tcl folder. It fixes
more than 92% of the lines

%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---
 #!/usr/bin/perl -Wpi

 my $re_sym = qr{[a-z_][a-z0-9_]*}i;
 my $re_var = qr{(?:\$|\$::)$re_sym};
 my $re_const = qr{0x[0-9a-f]+|[0-9]+|[0-9]*\.[0-9]*}i;
 my $re_item = qr{(?:~\s*)?(?:$re_var|$re_const)};
 my $re_op = qr{<<|>>|[+\-*/&|]};
 my $re_expr = qr{(
     (?:\(\s*(?:$re_item|(?-1))\s*\)|$re_item)
     \s*$re_op\s*
     (?:$re_item|(?-1)|\(\s*(?:$re_item|(?-1))\s*\))
 )}x;

 # [expr [dict get $regsC100 SYM] + HEXNUM]
 s/\[expr (\[dict get $re_var $re_sym\s*\] \+ *$re_const)\]/\[expr \{$1\}\]/;

 # [ expr (EXPR) ]
 # [ expr EXPR ]
 # note: $re_expr captures '$3'
 s/\[(\s*expr\s*)\((\s*$re_expr\s*)\)(\s*)\]/\[$1\{$2\}$4\]/;
 s/\[(\s*expr\s*)($re_expr)(\s*)\]/\[$1\{$2\}$4\]/;
%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---

Change-Id: I0d6bddc6abf6dd29062f2b4e72b5a2b5080293b9
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/6159
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
61 files changed:
tcl/bitsbytes.tcl
tcl/board/at91cap7a-stk-sdram.cfg
tcl/board/at91sam9261-ek.cfg
tcl/board/at91sam9263-ek.cfg
tcl/board/dm355evm.cfg
tcl/board/dm365evm.cfg
tcl/board/embedded-artists_lpc2478-32.cfg
tcl/board/icnova_imx53_sodimm.cfg
tcl/board/imx31pdk.cfg
tcl/board/imx53-m53evk.cfg
tcl/board/imx53loco.cfg
tcl/board/mcb1700.cfg
tcl/chip/atmel/at91/aic.tcl
tcl/chip/atmel/at91/at91_pmc.cfg
tcl/chip/atmel/at91/at91_rstc.cfg
tcl/chip/atmel/at91/at91_wdt.cfg
tcl/chip/atmel/at91/at91sam9261_matrix.cfg
tcl/chip/atmel/at91/at91sam9263_matrix.cfg
tcl/chip/atmel/at91/at91sam9_init.cfg
tcl/chip/atmel/at91/at91sam9_sdramc.cfg
tcl/chip/atmel/at91/at91sam9_smc.cfg
tcl/chip/atmel/at91/rtt.tcl
tcl/chip/atmel/at91/usarts.tcl
tcl/chip/st/spear/quirk_no_srst.tcl
tcl/chip/st/spear/spear3xx_ddr.tcl
tcl/chip/st/stm32/stm32_rcc.tcl
tcl/chip/st/stm32/stm32_regs.tcl
tcl/cpu/arc/em.tcl
tcl/cpu/arc/hs.tcl
tcl/cpu/arc/v2.tcl
tcl/fpga/xilinx-dna.cfg
tcl/fpga/xilinx-xadc.cfg
tcl/mem_helper.tcl
tcl/memory.tcl
tcl/mmr_helpers.tcl
tcl/target/am335x.cfg
tcl/target/am437x.cfg
tcl/target/ampere_emag.cfg
tcl/target/bluenrg-x.cfg
tcl/target/c100config.tcl
tcl/target/c100helper.tcl
tcl/target/c100regs.tcl
tcl/target/davinci.cfg
tcl/target/fm4_mb9bf.cfg
tcl/target/fm4_s6e2cc.cfg
tcl/target/icepick.cfg
tcl/target/imx.cfg
tcl/target/ixp42x.cfg
tcl/target/omap4430.cfg
tcl/target/omap4460.cfg
tcl/target/or1k.cfg
tcl/target/pic32mx.cfg
tcl/target/psoc5lp.cfg
tcl/target/snps_em_sk_fpga.cfg
tcl/target/snps_hsdk.cfg
tcl/target/stm32h7x.cfg
tcl/target/ti_dm355.cfg
tcl/target/ti_dm365.cfg
tcl/target/u8500.cfg
tcl/test/selftest.cfg
tcl/tools/memtest.tcl

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)