Closed manuelfuenmayor closed 1 year ago
This is stated in ISO 10303-11:2004, 7.1.6.1:
NOTE Care must be taken when nesting remarks to ensure that there are matched pairs of symbols.
EXAMPLE The following is an example of nested embedded remarks.
(* The ’(*’ symbol starts a remark, and the ’*)’ symbol ends it *)
This means that all remark opening/closing tags must be matching.
Therefore this code:
(*"mathematical_functions_schema.basic_sparse_matrix.index"
Function providing starting locations in *loc* and *val* for the non-default pairs in
each row (if *order* = *by_rows*) or column (if *order* = *by_columns*).
Derived to be the same as the first operand.
*)
Is invalid because *by_columns*)
is not preceded by a (*
.
The easiest way is to add a space between *by_columns* )
.
Closing since this is not a bug in Expressir.
@manuelfuenmayor can you please help document this in the annotated-express repo? Thanks!
In relation to https://github.com/metanorma/iso-10303-detached-docs/issues/166
In my opinion, the parsing of delimiting characters for annotated EXPRESS blocks (
(*
and*)
) should be more restrictive. Currently, they tend to be confused with a boldfaced markup within parentheses:... *boldfaced*)
.Example:
In this markup, the part
= *by_columns*).
is misinterpreted as the end of the annotated block, giving erroneous output:I recommend taking the "start of line" character into account when parsing the delimiting blocks. (Or maybe there is an escape option that I should know about?)