R-GReQL-Grammatik

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

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

x <- c(5,6)

Prog stellt den Wurzelknoten jeder R-Datei dar. (blau)

ParameterList

Ist der Wurzelknoten für Parameter einer aufgerufenen Funktion. (rot)

AnonParameterList

var <- (function (x) x + 3) (10)

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.

FunctionCall

Stellt einen Aufruf einer Funktion dar, z.B.

x <- c(5,6).

Variable

Stellt eine Variable dar, z.B.

x <- c(5,6).

Operator

ArithmeticOperator

AddOperator
SubOperator
MulOperator
DivOperator
ExpOperator
RemainderOperator
FloorOperator

RelationalOperator

GreaterOperator
LesserOperator
GreaterEqOperator
LesserEqOperator
EqualOperator
UnequalOperator
InOperator

LogicalOperator

AndOperator
OrOperator
NotOperator
AndOperatorFirstElement
OrOperatorFirstElement

AssignmentOperator

LeftAssignmentOperator
LeftAssignmentOperator1
LeftAssignmentOperator2
LeftAssignmentOperator3
LeftAssignmentOperator4
RightAssignmentOperator
RightAssignmentOperator1
RightAssignmentOperator2

MiscOperator

SequenceOperator
ContainsOperator
MatrixMulOperator
TildeOperator

Statement

Block

IfStatement

SwitchStatement

Loop

WhileStatement
RepeatStatement
ForStatement

BreakStatement

NextStatement

Unsortiert

AnonFunctionDeclaration
NamedElement
FunctionDeclaration
ReturnStatement

Kanten

AssignmentOperator

LeftHandSide

RightHandSide

Block

BodyStatements

ForStatement

CountVariable

Set

SetVariable

FunctionCall

List

IfStatement

Condition

ElseBody

ThenBody

Node

Expression

ParameterList

Parameter

Prog

ProgStatements

Statement

StatementBody