-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
high priorityhigh priorityhigh priority
Description
OpenMP has lots of restrictions and rules in each directive and clause. A full syntax checking requires detailed work for each directive and clause. I am proposing that we apply the following strategies:
- If we can use the lexer and grammar rules to apply restrictions and rules that are straightforward, we will use lexer and grammar rules
- For more complicated checking that involve only one clause type, e.g. syntax checking can be performed when adding the clause information to the directive object. E.g. single-use restriction for if, num_threads, ... clauses can be checked when adding the clause.
- For those checking that needs to involve multiple clauses and can only be performed after the whole directive is parsed, we will need to do that after parsing the whole directive. E.g. the use of if and other clauses in the combined directive, a clause that must exist for a directive.
- Syntax checking that involves language-specific expression and identifiers are very limited due to the nature of the parser. The simple checking can be done is to check whether two variables are used in two places that are conflict, e.g. shared(avar) private(avar). This is incorrect use of avar and can be checked by simply comparing the strings of the occurence of the variable.
- Full semantics checking should be done by the integrating compiler
Reactions are currently unavailable
Metadata
Metadata
Labels
high priorityhigh priorityhigh priority