Altova MapForce 2024 Enterprise Edition

In diesem Kapitel werden die folgenden syntaxbezogenen Aspekte behandelt: Token, Grammatik, unterstützte Operationen, in Berechnungen verwendete vordefinierte Namen und Ausdrucksfunktionen. Nähere Informationen dazu finden Sie in den Unterabschnitten weiter unten.

 

Token

Der für eine bestimmte Eigenschaft eingegebene Ausdruck wird zu einer Sequenz von Token verarbeitet, die der in diesem Unterabschnitt beschriebenen Struktur entsprechen müssen. Whitespaces zwischen Token haben keine Bedeutung und werden ignoriert.

 

Identifier

Zum Referenzieren von integrierten Objekten werden integrierte Identifier verwendet. Integrierte Identifier beginnen mit einem Groß- oder Kleinbuchstaben oder einem Unterstrich (Top bezieht sich z.B. auf den oberen Rand einer Region). Benutzer-Identifier werden in eckige Klammern [ ] gesetzt und können beliebige Unicode-Zeichen enthalten ([Sep1] kann sich z.B. auf den äußersten linken Rand der Tabellenspalte namens Description beziehen).

 

Aus einem einzelnen Zeichen bestehende Token

Aus einem einzelnen Zeichen bestehende Token sind ein wesentlicher Bestandteil von Programmiersprachen und werden normalerweise zu komplexen Ausdrücken kombiniert. Zu aus einem einzelnen Zeichen bestehenden Zeichen gehören die folgenden: (, ), {, }, ,, :, ..

 

Zahlenliterale

Zahlenliterale stehen für numerische Werte. Zahlenliterale haben kein Vorzeichen (dieses wird als unitärer Operator behandelt) und müssen mindestens eine Stelle vor und nach dem Dezimalkomma (bzw. Dezimalpunkt) haben.

 

String-Literale

String-Literale repräsentieren in doppelte Anführungszeichen gesetzte Zeichensequenzen. String-Literale können jedes beliebige Unicode-Zeichen und mit dem umgekehrten Schrägstrich gekennzeichnete Sonderzeichen enthalten (so steht z.B. das Zeichen \ für einen Zeilenumbruch).

 

Farbliterale

Zahlenliterale stehen für Farbwerte. Farbliterale haben dieselbe Form wie in HTML und CSS und werden als drei oder sechs hexadezimale Stellen dargestellt (#FFF ist z.B. ein hexadezimaler Farbcode, der für Weiß steht).

 

Operatoren

Operatoren sind Symbole, die zur Durchführung verschiedener Operationen wie dem Vergleichen von Werten, der Durchführung von mathematischen Berechnungen, dem Verketten von Strings, usw. verwendet werden. Die folgenden Operatoren werden unterstützt: +, -, *, /, &, |, =, !, <, >, ^, %.

 

Grammatik

In diesem Unterabschnitt werden die folgenden Grammatikaspekte beschrieben: binäre und unäre Ausdrücke.

 

Binäre Ausdrücke

Ein binärer Ausdruck ist ein Ausdruck, der zwei Operanden und einen Operator, der eine Aktion (z.B. eine Multiplikation) an den Operanden durchführt, enthält.

 

Multiplikations- (*, /), Additionsoperatoren (+, -) und logische Operatoren (&&, ||, !) sind linksassoziative Operatoren. Das bedeutet, dass Operatoren derselben Operatorvorrangstellung von links nach rechts verarbeitet werden (so wird etwa im Ausdruck 5+2*4 die Multiplikation vor der Addition durchgeführt, da die Multiplikation Vorrang vor der Addition hat). Linksassoziative Operatoren können verkettet werden.

 

Gleichheits- (==, !=, =), relationale Operatoren (<, >, , ) und allgemeine Operatoren (nicht in anderen Klassen enthaltene Operatoren) sind nicht assoziativ. Daher führt die Verkettung solcher Operatoren ohne Klammern zu einem Parser-Fehler.

 

Unäre Ausdrücke

Ein unärer Ausdruck ist ein Ausdruck, der nur einen Operanden und einen unären Operator enthält, der auf diesen einzelnen Operanden angewendet wird. Unten sind die unterstützten unären Ausdrücke beschrieben.

 

Ein integrierter Verweis-Ausdruck ist ein Identifier, ein von einer Sequenz von Mitgliedsselektoren gefolgter Identifier oder ein von einem Tupel gefolgter Identifier, der ein Funktionsaufruf ist.

Ein Benutzerverweis-Ausdruck ist dasselbe wie ein integrierter Verweis, mit der Ausnahme, das keine Funktionsaufrufe möglich sind.

Ein unäres-Präfix-Operator-Ausdruck ist ein Operator, der auf einen einzelnen Operanden angewendet wird und vor den Operanden gesetzt wird. Häufig gebrauchte unäre Präfix-Operatoren sind +, -, !, ++, --.

Ein String-Literal-Ausdruck: siehe Beschreibung in String-Literale im Unterabschnitt Token oben.

Ein Zahl-Ausdruck ist ein Zahlenliteral mit einem optionalen Suffix, bei dem es sich um jeden integrierten Identifier handeln kann. Diese Ausdrucksart kann z.B. bei Abstandsliteralen nützlich sein.

Ein Farbliteral-Ausdruck: siehe Beschreibung in Farbliteral im Unterabschnitt Token oben.

Bei Tupel-Ausdrücken gibt es die folgenden Arten: (i) ein leeres Tupel, das keine Elemente enthält und als () dargestellt wird; (ii) ein Singleton-Tupel, das ein einziges Element enthält (z.B. (50,)); (iii) alle anderen Tupel, die mindestens zwei Werte enthalten (z.B. ist 5pt, “Hello” ein Tupel mit einem Abstand als erstem Wert und einem String als zweitem Wert).

Ein Struktur-Ausdruck ähnelt einem Tupel-Ausdruck, mit dem Unterschied, dass Tupel-Mitglieder zum Identifizieren Indizes haben, während Struktur-Mitglieder Namen anstelle von Indizes haben. Im Gegensatz zu einem Tupel ist eine Struktur mit einem einzigen Mitglied noch immer eine Struktur, da sie einen Namen hat. Eine leere Struktur entspricht jedoch einem leeren Tupel. Beispiel für eine Struktur: { X: 30pt, Y: -20pt } ist eine Struktur mit den Mitgliedern X und Y, wobei beides Abstände sind.

 

Unterstützte Operationen

In diesem Unterabschnitt werden unterstützte Operationen beschrieben.

 

Zahlen

Zahlen können addiert, subtrahiert, negiert, multipliziert, dividiert und verglichen werden. Der PDF Extractor unterstützt die Funktionen odd und even, um zu überprüfen, ob die Zahl eine gerade oder ungerade Ganzzahl ist. Das Ergebnis ist nicht definiert, wenn eine Zahl keine Ganzzahl ist.

 

Booleans

Boolesche Operationen (Boolean) können Gleichheitsvergleiche (==, !=), logische Konjunktionen (AND) und Disjunktionen (OR) erhalten.

 

Positionen

Positionen definieren die Position einer Kante auf der Seite. Mit Hilfe von logischen Operationen können Sie eine Kante auf der Seite positionieren. Normalerweise verwenden Sie dazu eine Kante oder fügen einen Abstand zu einer Kante hinzu (z.B. Left + 50pt). In derselben Richtung definierte Positionen können voneinander subtrahiert werden, um eine Ergebnisposition zu erhalten (z.B. (Top + 500 pt) - (Top + 200pt) = Top+300pt).

 

Abstände

Abstände definieren, wie weit zwei Positionen auf der Seite voneinander entfernt sind. Die Abstandsfunktion wird in pt, in, cm, mm und pc gemessen, wobei diese Einheiten dieselbe Bedeutung wie in CSS haben. Sie können Abstände addieren und subtrahieren und einen Abstand mit einer Zahl multiplizieren. Abstände können auch dividiert werden, um das Verhältnis zu erhalten.

 

Operationen mit Rechtecken

Der PDF Extractor unterstützt die folgenden Funktionen zur Bearbeitung von Rechtecken:

 

 

Integrierte Namen

Der PDF Extractor unterstützt die folgenden integrierten Namen, die in Berechnungen verwendet werden können:

 

Left: Der linke Rand der aktuellen Seite. Left ist ein Alias von PageRect.Left.

Top: Der obere Rand der aktuellen Seite. Top ist ein Alias von PageRect.Top.

Right: Der rechte Rand der aktuellen Seite. Right ist ein Alias von PageRect.Right.

Bottom: Der untere Rand der aktuellen Seite. Bottom ist ein Alias von PageRect.Bottom.

PageRect: Ein Rechteck, mit dem die Ränder der aktuellen Seite definiert werden. Der vordefinierte Name PageRect ist in Kombination mit Rechteckverarbeitungsfunktionen wie inflate nützlich (siehe "Operationen mit Rechtecken" oben).

PageNumber: Die Seitennummer der aktuellen Seite.

 

© 2018-2024 Altova GmbH