NSExpressionType et definitions BNF des prédicates

laurrislaurris Membre
22:31 modifié dans API AppKit #1
Pas eu de réponse sur la liste cocoa-dev (j'espérais une réponse d'un ingénieur Apple) alors j'essaie ici:

How predicate's BNF definitions are mapped to NSExpressionType ?

On one side:

typedef enum {
NSConstantValueExpressionType = 0,
NSEvaluatedObjectExpressionType,
NSVariableExpressionType,
NSKeyPathExpressionType,
NSFunctionExpressionType
} NSExpressionType;

On the other side:
expression ::= "(" expression ")"

    | binary_expression
    | function_expression
    | assignment_expression
    | index_expression
    | keypath_expression
    | value_expression


I assume that ...
NSFunctionExpressionType -> function_expression
NSKeyPathExpressionType -> keypath_expression
NSConstantValueExpressionType -> value_expression

But ...
1- Does assignment_expression and index_expression have their counterpart in Foundation ?
2- Why NSEvaluatedObjectExpressionType seems equivalent to [value_expression > literal_value > SELF] in BNF and is it true ?
3- Why NSVariableExpressionType seems equivalent to [value_expression > literal_value > predicate_variable] and is it true ?

Thanks. Romain.

Réponses

  • laurrislaurris Membre
    22:31 modifié #2
    Sinon, à  quoi correspond la "BFN definition of predicate".

    J'ai bien compris que la notation BNF ("Backus Naur Form" inventée par John Backus and Peter Naur) est une façon de présenter la grammaire d'un language.
    Mais je ne saisis pas si la BNF notation de la doc Apple sur les predicates est issue du cerveau d'Apple ou s'il existe quelque part une norme "BNF predicate" acceptée par tout le monde.

    Ca change tout parce que dans le 1er cas (inventé par Apple), on peut s'attendre à  ce que leur document corresponde exactement à  l'implémentation de NSPredicate. Or j'ai des petits doutes sur certains détails.
Connectez-vous ou Inscrivez-vous pour répondre.