Syntax of the DTPL language

The syntax of DTPL have been described in this document using the EBNF form. For more information on the EBNF form, the reader can refer to this link:

  • http://www.cs.man.ac.uk/~pjj/bnf/bnf.html

    Syntax

    dtPatternExp = wholePatternPropertiesDefExp, wholeDependenciesDefExp;

    wholePatternPropertiesDefExp = (patternPropertiesDefExp)+ ;
    wholeDependenciesDefExp = (dependenciesDefExp)+ ;

    patternPropertiesDefExp = "#", propertyNameExp, "=", propertyValueExp, "#";

    dependenciesDefExp = dependencyExp, "(", nodeExp, ",", nodeExp, ");";

    propertyNameExp = numAlphString;
    propertyValueExp = (nonTerminalSymbol | terminalSymbol)+ ;

    nonTerminalSymbol = "<", numAlphString, ">";

    dependencyExp = ["!"], numAlphString;

    nodeExp = nodeValueExp, nodeIndexExp, nodePosTagsExp;

    nodeValueExp = numAlphString;
    nodeIndexExp = emptyString | ("-", numeralString);
    nodePosTagsExp = "(", singleOrMultiPostagExp, ")";

    singleOrMultiPostagExp = posTag, ("|" posTag)* ;

    posTag = numAlphString;

    numeralString = ("0-9")+;
    numAlphString = ("a-z" | "A-Z" | "0-9" | "$" | "&" | ... )+;
    emptyString = "";