7.0.1 Fixes

General discussions about working with the Astrobe IDE and programming ARM Cortex-M0, M3, M4 and M7 microcontrollers.
Post Reply
gray
Posts: 143
Joined: Tue Feb 12, 2019 2:59 am
Location: Mauritius

7.0.1 Fixes

Post by gray » Tue Apr 30, 2019 5:53 am

Type tests on expressions (e.g. array elements and individual fields of records) are handled correctly in IS expressions. Type tests using CASE statements can only be performed on (qualified) identifiers, not expressions.
1) Does this apply to all type tests, or only in leaf procedures?
2) Is dereferencing via p^ considered an expression?

cfbsoftware
Site Admin
Posts: 525
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Re: 7.0.1 Fixes

Post by cfbsoftware » Tue Apr 30, 2019 11:35 am

1. The same rules apply to type tests in Leaf procedures as for type tests in normal procedures and vice versa.

2. Refer to the syntax definitions in the Appendix The Syntax of Oberon in the Oberon Language Report.

^ is defined as a selector. This can be traced all the way back to an expression. A qualident is defined as:

qualident = [ident"."] ident

where ident = letter {letter | digit}

For more details refer to Section 7.3 Type Extension CASE Statements in the ARM Cortex-M Oberon Programmers Guide which you can download (along with the Language Report) from:

https://www.astrobe.com/Oberon.htm

Post Reply