Overview
Comment: | Fix in type check for DECLARE and LOCAL. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
3fff6adc908314955bb3b9ce43903a54 |
User & Date: | peter 2022-12-23 17:07:02 |
Context
2022-12-25
| ||
08:17:05 | [2524084992] Added support for Haiku OS. (user: peter tags: trunk) | |
2022-12-23
| ||
17:07:02 | [3fff6adc90] Fix in type check for DECLARE and LOCAL. (user: peter tags: trunk) | |
2022-12-18
| ||
19:09:23 | [3acfce214a] Improved code for RUN statement. (user: peter tags: trunk) | |
Changes
Changes to bacon_trunk/bacon.bac.
︙ | ︙ | |||
1699 1700 1701 1702 1703 1704 1705 | var$ = CHOP$(TOKEN$(arg$, 1, "TREE")) type$ = CHOP$(TOKEN$(arg$, 2, "TREE")) ELSE var$ = CHOP$(arg$) IF ISTOKEN(var$, "ARRAY") THEN array$ = TOKEN$(var$, 2, "ARRAY") var$ = TOKEN$(var$, 1, "ARRAY") | < < < | 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 | var$ = CHOP$(TOKEN$(arg$, 1, "TREE")) type$ = CHOP$(TOKEN$(arg$, 2, "TREE")) ELSE var$ = CHOP$(arg$) IF ISTOKEN(var$, "ARRAY") THEN array$ = TOKEN$(var$, 2, "ARRAY") var$ = TOKEN$(var$, 1, "ARRAY") FI type$ = IIF$(INSTR(var$, g_STRINGSIGN$), "char*", IIF$(INSTR(var$, g_FLOATSIGN$), "double", g_VARTYPE$)) END IF ' Check if variable was already declared IF NOT(INSTR(var$, ".")) AND LEFT$(var$, 1) != "(" THEN FOR str$ IN EXTRACT$(var$, " ") STEP "," |
︙ | ︙ | |||
1861 1862 1863 1864 1865 1866 1867 | var$ = CHOP$(TOKEN$(arg$, 1, "TREE")) type$ = CHOP$(TOKEN$(arg$, 2, "TREE")) ELSE var$ = CHOP$(arg$) IF ISTOKEN(var$, "ARRAY") THEN array$ = TOKEN$(var$, 2, "ARRAY") var$ = TOKEN$(var$, 1, "ARRAY") | < < < | | 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 | var$ = CHOP$(TOKEN$(arg$, 1, "TREE")) type$ = CHOP$(TOKEN$(arg$, 2, "TREE")) ELSE var$ = CHOP$(arg$) IF ISTOKEN(var$, "ARRAY") THEN array$ = TOKEN$(var$, 2, "ARRAY") var$ = TOKEN$(var$, 1, "ARRAY") FI type$ = IIF$(INSTR(var$, g_STRINGSIGN$), "char*", IIF$(INSTR(var$, g_FLOATSIGN$), "double", g_VARTYPE$)) END IF ' Check if variable was already declared IF NOT(INSTR(var$, ".")) AND LEFT$(var$, 1) != "(" THEN FOR str$ IN EXTRACT$(var$, " ") STEP "," ' Check for C keywords IF REGEX(str$, g_C_KEYWORDS$) THEN |
︙ | ︙ |
Changes to bacon_trunk/bacon.sh.
︙ | ︙ | |||
2267 2268 2269 2270 2271 2272 2273 | VAR=$(echo "${1%% TREE *}") TYPE=$(echo "${1##* TREE }") else if [[ "${1}" = +(* ARRAY *) ]] then ARRAY=${1##* ARRAY } VAR=$(echo "${1%% ARRAY *}") | < < < < | | 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 | VAR=$(echo "${1%% TREE *}") TYPE=$(echo "${1##* TREE }") else if [[ "${1}" = +(* ARRAY *) ]] then ARRAY=${1##* ARRAY } VAR=$(echo "${1%% ARRAY *}") else VAR=$(echo "${1}") fi # This construction needed for KSH93 if [[ "${VAR//${g_STRINGSIGN}/}" != "${VAR}" ]] then TYPE="char*" elif [[ "${VAR//${g_FLOATSIGN}/}" != "${VAR}" ]] then TYPE="double" else TYPE="${g_VARTYPE}" fi fi # Check if variable was already declared - no record and not a function pointer? if [[ "$VAR" != +(*.*) && "$VAR" != +(\(*) ]] then IFS="," for i in ${VAR// /} |
︙ | ︙ | |||
2483 2484 2485 2486 2487 2488 2489 | VAR=$(echo "${1%% TREE *}") TYPE=$(echo "${1##* TREE }") else if [[ "${1}" = +(* ARRAY *) ]] then ARRAY=${1##* ARRAY } VAR=$(echo "${1%% ARRAY *}") | < < < < | | 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 | VAR=$(echo "${1%% TREE *}") TYPE=$(echo "${1##* TREE }") else if [[ "${1}" = +(* ARRAY *) ]] then ARRAY=${1##* ARRAY } VAR=$(echo "${1%% ARRAY *}") else VAR=$(echo "${1}") fi # This construction needed for KSH93 if [[ "${VAR//${g_STRINGSIGN}/}" != "${VAR}" ]] then TYPE="char*" elif [[ "${VAR//${g_FLOATSIGN}/}" != "${VAR}" ]] then TYPE="double" else TYPE="${g_VARTYPE}" fi fi # Check if variable was already declared - no record and not function pointer? if [[ "$VAR" != +(*.*) && "$VAR" != +(\(*) ]] then IFS="," |
︙ | ︙ |
Changes to bacon_trunk/doc-pak/CHANGES.
1 2 3 4 5 6 7 8 9 10 11 12 13 | +-------------------------------+ | 4.6.1 beta +-------------------------------+ - Fix: check on duplicate SUB or FUNCTION names (all versions - kudos rikky) - Fix: memory leak in handling local string arrays (BaCon version) - Fix: regression and improvement in RUN statement (BaCon resp. Shell version) November 1, 2022 - 4.6 stable - New: INVERT function to invert keys/values in associative arrays (all versions) - New: WHERE function to determine character position in string based on token index (all versions) - Imp: SORT now also can sort associative arrays (all versions) - Imp: extended INDEX with INDEX$ for associative arrays (all versions) - Imp: replaced 'which' for 'command -v' in shell searching (all versions) | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | +-------------------------------+ | 4.6.1 beta +-------------------------------+ - Fix: check on duplicate SUB or FUNCTION names (all versions - kudos rikky) - Fix: memory leak in handling local string arrays (BaCon version) - Fix: regression and improvement in RUN statement (BaCon resp. Shell version) - Fix: type check in DECLARE/GLOBAL/LOCAL too strict (all versions - kudos rikky) November 1, 2022 - 4.6 stable - New: INVERT function to invert keys/values in associative arrays (all versions) - New: WHERE function to determine character position in string based on token index (all versions) - Imp: SORT now also can sort associative arrays (all versions) - Imp: extended INDEX with INDEX$ for associative arrays (all versions) - Imp: replaced 'which' for 'command -v' in shell searching (all versions) |
︙ | ︙ |