Joachim Christ
Weiterlesen…
Joachim Christ
Formatierer
Scan zeigt die gefundenen Sprachelemente der Quelle − eines pro Zeile − an.
Parse behält die Zeilenstruktur der Quelle bei, eliminiert aber alle Leerzeichen und -zeilen.
Prettify bereitet ein beliebig geschriebenes Programme in einer einheitlichen Form auf.
Die Option Parenthesize steuert dabei, ob eine einzelne Anweisung durch '{' und '}' geklammert werden soll.
Andernfalls wird eine if-else if-else if-else-Kaskade flach dargestellt.
Minify stellt ein Programme möglichst kompakt dar und erschwert dadurch das Erkennen seiner Bedeutung.
Dabei werden insbesondere Kommentare und Leerraum entfernt.
Demgegenüber behält Compress Kommentare und Leerzeilen bei, verdichtet aber Leerraum.
Obfuscate ersetzt die Bezeichner eines Programms und verschleiert damit dessen Bedeutung fast vollständig.
Präprozessor
Die Option Preprocess leistet:
das Ersetzen der Namen von Konstanten durch deren Werte
eine bedingte Compilierung durch die Auswahl des richtigen Zweigs einer Anweisung if-else
die Eliminierung von nicht erreichbarem Code nach 'return', 'break', 'continue' oder 'goto'
das Entfernen von Kommentaren
Weiterlesen…
Joachim Christ
Arithmetische Sprachelemente
Folgende Sprachelemente sind implementiert:
Skalare numerische Werte und Zeichenketten
Vorzeichen: + oder −
Klammerung von Ausdrücken: ( … )
Operatoren: +, −, *, /, div (ganzzahlige Division), % (Rest bei der ganzzahliger Division) und ** (Exponentiation)
Bit-Operatoren: ~ (Bitweises Nicht), & (Bitweises Und), | (Bitweises Oder), ^ (Bitweises exklusives Oder), >> (Shift rechts), << (Shift links), >>> (Shift rechts ohne Vorzeichen)
(Präfix-)Operatoren: abs, sign sowie trunc (ganzzahliger Anteil) und frac (Dezimalstellen)
sowie: ++ (Inkrement) und -- (Dekrement)
Vergleichs-Operatoren: == sowie != (für alle Datentypen)
weiterhin: <, <=, > und >= (für Zeichenketten und Zahlen)
Logische Operatoren: ! (logisches Nicht), && (logisches Und), || (logisches Oder) und ^^ (exklusives Oder)
sowie: ? … : … (Bedingung)
Nicht skalare Werte: [ …, … ] (Felder) sowie { …, … } (Strukturen)
Zugriffs-Operatoren: [ … ] und . …
Test-Operator: in (Index in Feld bzw. Komponente in Struktur)
Algebraische Sprachelemente
Folgende Sprachelemente können zusätzlich bei einer algebraischen Auswertung benutzt werden:
Variable
Reguläre Ausdrücke
Anweisung: return
(Präfix-)Operator: typeof (Typ eines Ausdrucks) und new (Neue Instanz)
(Postfix-)Operatoren: ++ und --
Zuweisungs-Operatoren: =, +=, −=, *=, /=, %=, **=, &=, |=, ^=, >>=, <<= und >>>=
Vergleichs-Operatoren: === und !==
Aufrufe: ƒ( …, …) und .ƒ( …, …)
Funktionsdefinitionen: function ( …, … ) { …; … } und ( …, … ) => { …; … }
Weiterlesen…
Joachim Christ
Weiterlesen…
Joachim Christ
Weiterlesen…
Joachim Christ
Sprachelemente
Folgende Sprachelemente sind implementiert:
- Vorzeichen: + oder −
- Klammerung von Ausdrücken: ( … )
- Arithmetische Operatoren: +, −, *, /, div (ganzzahlige Division) und mod (Rest bei der ganzzahliger Division)
- Funktionen: abs/1, neg/1, sign/1 sowie trunc/1 (ganzzahliger Anteil) und frac/1 (Dezimalstellen)
- Funktionen: sin/1, cos/1, tan/1 und cot/1 für Argumente im Bogenmaß und die Funktion: pi/0
- Funktionen: fib/1, fac/1, sqr/1, pow/2, exp/1 und sqrt/1
- Funktionen: count/n (Anzahl), min/n, max/n, sum/n, prod/n, avg/n (Durchschnitt), sort/n und median/n (Mittelwert)
- Vergleichs-Operatoren: ==, !=, <, <=, > und >=
- Logische Operatoren: ! (logisches Nicht), & (logisches Und), | (logisches Oder) und ^ (exklusives Oder)
- Bit-Operatoren: >> (Shift rechts) und << (Shift links)
Weiterlesen…
Populäre Tags