R-GReQL-Grammatik
Knoten
In dieser Grammatik sind abstrakte Knoten enthalten. Diese sind nicht instanziierbar und sowohl durch einen Kommentar, als auch durch kursiven Titel kenntlich gemacht.
Context
Prog
Prog stellt den Wurzelknoten jeder R-Datei dar. (blau)
ParameterList
Ist der Wurzelknoten für Parameter einer aufgerufenen Funktion. (rot)
AnonParameterList
Ist die Parameter-Liste, die bei einer anonymen Funktion verwendet wird, z.B.
var <- (function (x) x + 3)(10)
IndexList
Ist der Oberknoten der Liste der verwendeteten Indizes durch Angabe einer eckigen Klammer, z.B.
y <- array[1]
DoubleIndexList
Ist der Oberknoten der Liste der verwendeteten Indizes durch Angabe von zwei eckigen Klammern, z.B.
z <- otherarray2
Indexing
Ist ein Zwischenknoten für die Indexierung (IndexList, DoubleIndexList)
UnaryExpression
Ist ein abstrakter Knoten.
Negative
Ist der "-"-Operator vor einer Zahl, Variable oder Expression, z.B.
var <- -(x + -3)
Positive
Ist der "+"-Operator vor einer Zahl, Variable oder Expression, z.B.
var <- +5
Element
Ist ein abstrakter Knoten.
Literal
Ist ein abstrakter Knoten. Die folgenden Literale besitzen jeweils das Attribut "value", in dem der Wert abgespeichert wird.
BooleanLiteral
Stellt den boolischen Wert TRUE bzw. FALSE dar.
ComplexLiteral
Stellt eine komplexe Zahl, z.B. 3i, dar.
IntegerLiteral
Stellt einen Integerwert, z.B. 10L, dar.
NumericLiteral
Stellt eine Gleitkommazahl, z.B. 12.45, dar.
StringLiteral
Stellt eine Zeichenkette, z.B. "Hello World!" oder 'Hello World!' , dar.
NullLiteral
Ist der leere Index eines Arrays, z.B. var[1, ,2]
.
ID
Ist ein abstrakter Knoten.
Jeder Funktionsaufruf oder Variable ist in R eine ID. In diesem Checker wurden diese separiert und in zwei verschiedene Knoten unterteilt. Eine ID besitzt ein Atrribut "name", welches der FunctionCall- und Variable-Knoten erben.