Κοινή χρήση μέσω


Λεκτική δομή

Έγγραφα

Ένα έγγραφο M είναι μια ταξινομημένη ακολουθία χαρακτήρων Unicode. Η M επιτρέπει διαφορετικές χαρακτήρων Unicode σε διαφορετικά τμήματα ενός εγγράφου M. Για πληροφορίες σχετικά με τις χαρακτήρων Unicode, ανατρέξτε στο Πρότυπο Unicode, Έκδοση 3.0, ενότητα 4.5.

Ένα έγγραφο αποτελείται είτε από μία μόνο παράσταση είτε από ομάδες ορισμών οργανωμένων σε ενότητες. Οι ενότητες περιγράφονται λεπτομερώς στο Κεφάλαιο 10. Εννοιολογικά, τα παρακάτω βήματα χρησιμοποιούνται για την ανάγνωση μιας παράστασης από ένα έγγραφο:

  1. Το έγγραφο αποκωδικοποιείται σύμφωνα με το σχήμα κωδικοποίησης χαρακτήρων του σε μια ακολουθία χαρακτήρων Unicode.

  2. Πραγματοποιείται λεκτική ανάλυση, μεταφράζοντας έτσι τη ροή των χαρακτήρων Unicode σε μια ροή διακριτικών. Οι υπόλοιπες υποενότητες αυτής της ενότητας καλύπτουν λεκτική ανάλυση.

  3. Πραγματοποιείται συντακτική ανάλυση, μεταφράζοντας έτσι τη ροή των διακριτικών σε μια φόρμα που μπορεί να αξιολογηθεί. Αυτή η διαδικασία καλύπτεται σε επόμενες ενότητες.

Συμβάσεις γραμματικής

Η λεκτική και συντακτική γραμματική παρουσιάζεται με χρήση παραγωγών γραμματικής. Κάθε παραγωγή γραμματικής ορίζει ένα μη τερματικό σύμβολο και τις πιθανές επεκτάσεις αυτού του μη τερματικού συμβόλου σε ακολουθίες μη τερματικών ή τερματικών συμβόλων. Στις παραγωγές γραμματικής, τα σύμβολα που δεν είναι τερματικό+ εμφανίζονται με πλάγια γραφή και τα σύμβολα τερματικού εμφανίζονται με γραμματοσειρά σταθερού πλάτους.

Η πρώτη γραμμή μιας παραγωγής γραμματικής είναι το όνομα του μη τερματικού συμβόλου που ορίζεται, ακολουθούμενο από μια άνω και κάτω τελεία. Κάθε διαδοχική γραμμή με εσοχή περιλαμβάνει μια πιθανή επέκταση του μη τερματικού που παρέχεται ως ακολουθία μη τερματικών ή τερματικών συμβόλων. Για παράδειγμα, η παραγωγή:

παράσταση-if:
      ifσυνθήκη-if then παράστασηelse trueπαράσταση false

Ορίζει μια παράσταση-if που θα αποτελείται από το διακριτικό if, ακολουθούμενο από μια συνθήκη-if, ακολουθούμενη από το διακριτικό then, ακολουθούμενο από μια παράσταση-true, ακολουθούμενη από το διακριτικό else, ακολουθούμενο από μια παράσταση-false.

Όταν υπάρχουν περισσότερες από μία πιθανές επεκτάσεις ενός μη τερματικού συμβόλου, οι εναλλακτικές επιλογές παρατίθενται σε ξεχωριστές γραμμές. Για παράδειγμα, η παραγωγή:

λίστα-μεταβλητών:
      μεταβλητή
      μεταβλητή λίστας μεταβλητών
,

Ορίζει μια λίστα-μεταβλητών που αποτελείται είτε από μια μεταβλητή είτε από μια λίστα-μεταβλητών ακολουθούμενη από μια μεταβλητή. Με άλλα λόγια, ο ορισμός είναι επαναλαμβανόμενος και καθορίζει ότι μια λίστα μεταβλητών αποτελείται από μία ή περισσότερες μεταβλητές, διαχωρισμένες με κόμματα.

Ένα επίθημα επιθήματος "opt" χρησιμοποιείται για να υποδείξει ένα προαιρετικό σύμβολο. Η παραγωγή:

προδιαγραφή-πεδίου:
      optionalπροαγράψτε όνομα-πεδίου = τύπος-πεδίου

είναι στενογραφία για το:

προδιαγραφή-πεδίου:
      όνομα-πεδίου
= τύπος-πεδίου
      optionalόνομα-πεδίου = τύπος-πεδίου

Και ορίζει μια προδιαγραφή-πεδίου για να ξεκινήσει προαιρετικά με το σύμβολο optional τερματικού ακολουθούμενο από ένα όνομα-πεδίου, το σύμβολο =τερματικού και έναν τύπο-πεδίου.

Οι εναλλακτικές επιλογές παρατίθενται συνήθως σε ξεχωριστές γραμμές, ωστόσο, σε περιπτώσεις όπου υπάρχουν πολλές εναλλακτικές, η φράση "ένα από" μπορεί να προηγείται μιας λίστας επεκτάσεων που έχουν δοθεί σε μία μόνο γραμμή. Αυτό είναι απλώς μια στενογραφία για την παράθεση καθενός εκ των εναλλακτικών λύσεων σε ξεχωριστή γραμμή. Για παράδειγμα, η παραγωγή:

δεκαδικό-ψηφίο: ένα από
      0 1 2 3 4 5 6 7 8 9

είναι στενογραφία για το:

δεκαδικό-ψηφίο:
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9

Λεκτική ανάλυση

Η παραγωγή λεκτικής-μονάδας ορίζει τη λεκτική γραμματική για ένα έγγραφο M. Κάθε έγκυρο έγγραφο M συμμορφώνεται με αυτή τη γραμματική.

λεκτική-μονάδα:
      επιλογή λεκτικών στοιχείων
λεκτικά-στοιχεία:
      λεκτικό-στοιχείο
      λεκτικό-στοιχείο
      λεκτικά-στοιχεία
λεκτικό-στοιχείο:
      κενό διάστημα
      σχόλιο διακριτικού

Στο λεκτικό επίπεδο, ένα έγγραφο M αποτελείται από μια ροή κενών διαστημάτων, σχολίων και στοιχείων διακριτικού. Κάθε μία από αυτές τις παραγωγές καλύπτεται στις παρακάτω ενότητες. Μόνο τα στοιχεία διακριτικού είναι σημαντικά στη συντακτική γραμματική.

Κενό διάστημα

Τα κενά διαστήματα χρησιμοποιούνται για τον διαχωρισμό των σχολίων και των διακριτικών μέσα σε ένα έγγραφο M. Τα κενά διαστήματα περιλαμβάνουν τον χαρακτήρα διαστήματος (που αποτελεί μέρος της κλάσης Zs του Unicode), καθώς και τον οριζόντιο και κατακόρυφο στηλοθέτη, την τροφοδοσία φορμών και τις ακολουθίες χαρακτήρων νέας γραμμής. Οι ακολουθίες χαρακτήρων νέας γραμμής περιλαμβάνουν την αλλαγή παραγράφου, την αλλαγή γραμμής, την αλλαγή παραγράφου ακολουθούμενη από την αλλαγή γραμμής, την επόμενη γραμμή και χαρακτήρες διαχωριστικού παραγράφου.

κενό διάστημα:
      Οποιοσδήποτε χαρακτήρας με κλάση Zs του Unicode
      Χαρακτήρας οριζόντιου στηλοθέτη (U+0009)
      Χαρακτήρας κατακόρυφης καρτέλας (U+000B)
      Χαρακτήρας τροφοδοσίας φόρμας (U+000C)
      Χαρακτήρας αλλαγής παραγράφου (U+000D) ακολουθούμενος από χαρακτήρα αλλαγής γραμμής (U+000A)
      χαρακτήρας-νέας-γραμμής
χαρακτήρας-νέας-γραμμής:
      Χαρακτήρας αλλαγής παραγράφου (U+000D)
      Χαρακτήρας αλλαγής γραμμής (U+000A)
      Χαρακτήρας επόμενης γραμμής (U+0085)
      Χαρακτήρας διαχωριστικού γραμμής (U+2028)
      Χαρακτήρας διαχωριστικού παραγράφου (U+2029)

Για συμβατότητα με τα εργαλεία επεξεργασίας πηγαίου κώδικα που προσθέτουν δείκτες τέλους αρχείου και για να είναι δυνατή η προβολή ενός εγγράφου ως ακολουθίας γραμμών που έχουν τερματιστεί σωστά, εφαρμόζονται οι ακόλουθοι μετασχηματισμοί, με τη σειρά, σε ένα έγγραφο M:

  • Εάν ο τελευταίος χαρακτήρας του εγγράφου είναι χαρακτήρας Control-Z (U+001A), αυτός ο χαρακτήρας διαγράφεται.

  • Ένας χαρακτήρας αλλαγής παραγράφου (U+000D) προστίθεται στο τέλος του εγγράφου εάν αυτό το έγγραφο δεν είναι κενό και εάν ο τελευταίος χαρακτήρας του εγγράφου δεν είναι χαρακτήρας αλλαγής παραγράφου (U+000D), αλλαγή γραμμής (U+000A), διαχωριστικό γραμμής (U+2028) ή διαχωριστικό παραγράφου (U+2029).

Σχόλια

Υποστηρίζονται δύο μορφές σχολίων: σχόλια μίας γραμμής και οριοθετημένα σχόλια. Τα σχόλια μίας γραμμής ξεκινούν με τους χαρακτήρες και επεκτείνονται // μέχρι το τέλος της γραμμής προέλευσης. Τα οριοθετημένα σχόλια ξεκινούν με τους /* χαρακτήρες και τελειώνουν με τους */χαρακτήρες .

Τα οριοθετημένα σχόλια μπορεί να εκτείνονται σε πολλές γραμμές.

σχόλιο:
      σχόλιο μίας γραμμής
      οριοθετημένο σχόλιο
σχόλιο μίας γραμμής:

      //επιλογή χαρακτήρων-σχολίων μίας γραμμής
χαρακτήρες-σχολίου-μίας-γραμμής:
      επιλογή χαρακτήρων-σχολίου-μίας-γραμμής μίας-γραμμής-σχολίων
χαρακτήρας-σχολίου-μίας-γραμμής:

      Οποιοσδήποτε χαρακτήρας Unicode εκτός από έναν χαρακτήρα-νέας-γραμμής
οριοθετημένο σχόλιο:

      /*αστερίσκοι οριοθετημένων-σχολίων-κειμένου /
οριοθετημένο-σχόλιο-κείμενο:
      οριοθετημένη-ενότητα-σχολίου οριοθετημένη-σχόλιο-κείμενοπροαίστε
οριοθετημένη-σχόλιο-ενότητα:

      /
      αστερίσκοιπου επιλέγουν όχι-κάθετος-ή-αστερίσκος
Αστερίσκους:

      *επιλογή αστερίσκου
not-slash-or-αστερίσκος:

      Οποιοσδήποτε χαρακτήρας Unicode εκτός από * ή /

Τα σχόλια δεν ενσωμάτωννται. Οι ακολουθίες χαρακτήρων /* και */ δεν έχουν ιδιαίτερη σημασία μέσα σε ένα σχόλιο μίας γραμμής και οι ακολουθίες χαρακτήρων // και /* δεν έχουν ιδιαίτερη σημασία μέσα σε ένα οριοθετημένο σχόλιο.

Η επεξεργασία των σχολίων δεν πραγματοποιείται μέσα στις λεκτικές σταθερές κειμένου. Το παράδειγμα

/* Hello, world 
*/ 
    "Hello, world"

Περιλαμβάνει ένα οριοθετημένο σχόλιο.

Το παράδειγμα

// Hello, world 
// 
"Hello, world" // This is an example of a text literal

εμφανίζει πολλά σχόλια μίας γραμμής.

Διακριτικά

Ένα διακριτικό είναι ένα αναγνωριστικό, μια λέξη-κλειδί, μια λεκτική σταθερά, ένας τελεστής ή ένα σημείο στίξης. Τα κενά διαστήματα και τα σχόλια χρησιμοποιούνται για τον διαχωρισμό διακριτικών, αλλά δεν θεωρούνται διακριτικά.

σημείο:
      αναγνωριστικό
      λέξη κλειδί
      κυριολεκτικός
      τελεστής-ή-σημείο στίξης

Ακολουθίες χαρακτήρων διαφυγής

Οι τιμές κειμένου M μπορεί να περιέχουν αυθαίρετους χαρακτήρες Unicode. Οι λεκτικές σταθερές κειμένου, ωστόσο, περιορίζονται σε γραφικούς χαρακτήρες και απαιτούν τη χρήση ακολουθιών διαφυγής για μη γραφικούς χαρακτήρες. Για παράδειγμα, για να συμπεριλάβετε έναν χαρακτήρα αλλαγής παραγράφου, αλλαγής γραμμής ή στηλοθέτη σε μια λεκτική σταθερά κειμένου, μπορούν να χρησιμοποιηθούν οι #(cr)ακολουθίες , #(lf)και #(tab) , αντίστοιχα. Για να ενσωματώσετε τους #( χαρακτήρες έναρξης διαφυγής σε μια λεκτική σταθερά κειμένου, πρέπει να είναι δυνατή η διαφυγή του # ίδιου του:

#(#)(

Οι ακολουθίες διαφυγής μπορεί επίσης να περιέχουν σύντομες (τέσσερα δεκαεξαδικά ψηφία) ή μεγάλες (οκτώ δεκαεξαδικά ψηφία) τιμές σημείου Unicode. Επομένως, οι ακόλουθες τρεις ακολουθίες διαφυγής είναι ισοδύναμες:

#(000D)     // short Unicode hexadecimal value 
#(0000000D) // long Unicode hexadecimal value 
#(cr)       // compact escape shorthand for carriage return

Πολλοί κωδικοί διαφυγής μπορούν να συμπεριληφθούν σε μία μόνο ακολουθία διαφυγής, διαχωρισμένοι με κόμματα. Οι ακόλουθες δύο ακολουθίες είναι επομένως ισοδύναμες:

#(cr,lf) 
#(cr)#(lf)

Τα παρακάτω περιγράφουν τον τυπικό μηχανισμό χαρακτήρα που δραπετεύει σε ένα έγγραφο M.

χαρακτήρας-ακολουθία-διαφυγής:
      #( λίστα-ακολουθίας-διαφυγής )
λίστα-ακολουθίας-διαφυγής:
      μία-ακολουθία-διαφυγής
      λίστα-ακολουθίας-μοναδικής-διαφυγής
, λίστα-ακολουθίας-διαφυγής
μία-ακολουθία-διαφυγής:
      long-Unicode-escape-sequence
      σύντομη-unicode-ακολουθία-διαφυγής
      στοιχείο ελέγχου-χαρακτήρας-ακολουθία-διαφυγής
      escape-escape
long-Unicode-escape-sequence:
      δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο
σύντομη-unicode-ακολουθία-διαφυγής:
      δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο δεκαεξαδικό-ψηφίο δεκαεξαδικό ψηφίο
στοιχείο ελέγχου-χαρακτήρας-ακολουθία-διαφυγής:
      χαρακτήρας-στοιχείου ελέγχου
χαρακτήρας-στοιχείου ελέγχου:

      cr
      lf
      tab
escape-escape:
      #

Λεκτικές σταθερές

Μια λεκτική σταθερά είναι μια αναπαράσταση πηγαίου κώδικα μιας τιμής.

κυριολεκτικός:
      λογική-λεκτική σταθερά
      λεκτική σταθερά-αριθμού
      λεκτική σταθερά κειμένου
      λεκτική σταθερά-null
      αυτολεξεί-λεκτική σταθερά

Λεκτικές σταθερές null

Η λεκτική σταθερά null χρησιμοποιείται για την εγγραφή της τιμής null . Η null τιμή αντιπροσωπεύει μια τιμή που απουσιάζει.

λεκτική σταθερά-null:
      null

Λογικές λεκτικές σταθερές

Μια λογική λεκτική σταθερά χρησιμοποιείται για την εγγραφή των τιμών true και false παράγει μια λογική τιμή.

λογική-λεκτική-σταθερά:
      true
      false

Λεκτικές σταθερές αριθμών

Μια λεκτική σταθερά αριθμού χρησιμοποιείται για την εγγραφή μιας αριθμητικής τιμής και παράγει μια αριθμητική τιμή.

λεκτική-σταθερά-αριθμού:
      λεκτική-σταθερά-δεκαδικού-αριθμού
      δεκαεξαδικός-αριθμός-λεκτική-σταθερά-αριθμού
δεκαδικός-αριθμός-λεκτική-σταθερά:
      δεκαδικά-ψηφία
.δεκαδικά-ψηφία επιλογή τμήματος-εκθέτη
      . δεκαδικά-ψηφία επιλογή τμήματος-εκθέτη
      δεκαδικά-ψηφία επιλογή τμήματος-εκθέτη
δεκαδικά-ψηφία:
      επιλογή δεκαδικών-ψηφίων δεκαδικών-ψηφίων
δεκαδικό-ψηφίο:
ένα από
      0 1 2 3 4 5 6 7 8 9
τμήμα-εκθέτη:
      eσύμβολοεπιλογής δεκαδικά-ψηφία
      Eσύμβολοεπιλογής δεκαδικά-ψηφία
σύμβολο:
ένα από
      + -
δεκαεξαδική-αριθμός-λεκτική-σταθερά:
      0xδεκαεξαδικό-ψηφία
      0Xδεκαεξαδικό-ψηφία
δεκαεξαδικό-ψηφία:
      δεκαεξαδικό-ψηφίο δεκαεξαδική-ψηφίαεπιλογή
δεκαεξαδικό-ψηφίο:
ένα από
      0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f

Ένας αριθμός μπορεί να καθοριστεί σε δεκαεξαδική μορφή πριν από τα δεκαεξαδικά-ψηφία με τους 0xχαρακτήρες . Για παράδειγμα:

0xff // 255

Σημειώστε ότι εάν ένα δεκαδικό σημείο συμπεριληφθεί σε έναν αριθμό λεκτικής σταθεράς, τότε πρέπει να έχει τουλάχιστον ένα ψηφίο μετά από αυτό. Για παράδειγμα, 1.3 το είναι μια λεκτική σταθερά αριθμού, αλλά 1. τα και 1.e3 δεν είναι.

Λεκτικές σταθερές κειμένου

Μια λεκτική σταθερά κειμένου χρησιμοποιείται για την εγγραφή μιας ακολουθίας χαρακτήρων Unicode και παράγει μια τιμή κειμένου.

λεκτική σταθερά-κειμένου:
      " επιλογή χαρακτήρων λεκτικής-σταθεράςκειμένου "
χαρακτήρες-λεκτικής-σταθεράς-κειμένου:
      επιλογή χαρακτήρων-λεκτικής-σταθεράς-κειμένου χαρακτήρων-λεκτικής-σταθεράς
χαρακτήρας-λεκτικής-σταθεράς-κειμένου:
      χαρακτήρας-ενός κειμένου
      χαρακτήρας-ακολουθία-διαφυγής
      ακολουθία-διαφυγής-διπλών εισαγωγικών
χαρακτήρας-ενός κειμένου:

      Οποιοσδήποτε χαρακτήρας εκτός από " (U+0022) ή # (U+0023) ακολουθούμενος από ( (U+0028)
ακολουθία-διαφυγής-διπλών εισαγωγικών:
      "" (U+0022, U+0022)

Για να συμπεριλάβετε εισαγωγικά σε μια τιμή κειμένου, το σύμβολο εισαγωγικών επαναλαμβάνεται ως εξής:

"The ""quoted"" text" // The "quoted" text

Η παραγωγή χαρακτήρας-ακολουθίας-διαφυγής μπορεί να χρησιμοποιηθεί για την εγγραφή χαρακτήρων σε τιμές κειμένου χωρίς να χρειάζεται απευθείας κωδικοποίηση ως χαρακτήρες Unicode στο έγγραφο. Για παράδειγμα, μια αλλαγή παραγράφου και μια αλλαγή γραμμής μπορούν να εγγραφούν σε μια τιμή κειμένου ως:

"Hello world#(cr,lf)"

Αυτολεξεί λεκτικές σταθερές

Μια αυτολεξεί λεκτική σταθερά χρησιμοποιείται για την αποθήκευση μιας ακολουθίας χαρακτήρων Unicode που έχουν καταχωρηθεί από έναν χρήστη ως κώδικας, αλλά που δεν μπορεί να αναλυθεί σωστά ως κώδικας. Κατά τον χρόνο εκτέλεσης, παράγει μια τιμή σφάλματος.

αυτολεξεί-λεκτική-σταθερά:
      #!"επιλογή χαρακτήρων λεκτικής-σταθεράς κειμένου "

Αναγνωριστικά

Ένα αναγνωριστικό είναι ένα όνομα που χρησιμοποιείται για την αναφορά σε μια τιμή. Τα αναγνωριστικά μπορεί να είναι κανονικά αναγνωριστικά ή αναγνωριστικά σε εισαγωγικά.

αναγνωριστικό:
      κανονικό αναγνωριστικό
      αναγνωριστικό-σε εισαγωγικά
κανονικό αναγνωριστικό:
      διαθέσιμο-αναγνωριστικό
      διαθέσιμο-αναγνωριστικό τελεία-χαρακτήρας κανονικό-αναγνωριστικό
διαθέσιμο-αναγνωριστικό:

      Μια λέξη-κλειδί-ή-αναγνωριστικό που δεν είναι λέξη-κλειδί
λέξη-κλειδί-ή-αναγνωριστικό:
      επιλογή αναγνωριστικού-χαρακτήρα-έναρξης-αναγνωριστικού-τμήματος-τμήματος
αναγνωριστικό-χαρακτήρας-έναρξης:
      χαρακτήρας-letter
      χαρακτήρας υπογράμμισης
χαρακτήρες-αναγνωριστικού-μέρους:
      επιλογή αναγνωριστικού-μέρους-χαρακτήρα-αναγνωριστικού-τμήματος-χαρακτήρων
χαρακτήρας-αναγνωριστικού-μέρους:
      χαρακτήρας-letter
      δεκαδικός-ψηφίο-χαρακτήρας
      χαρακτήρας υπογράμμισης
      χαρακτήρας σύνδεσης
      συνδυασμός-χαρακτήρας
      χαρακτήρας-μορφοποίησης
χαρακτήρας-κουκκίδας:

      . (U+002E)
χαρακτήρας-χαρακτήρας υπογράμμισης:
      _ (U+005F)
χαρακτήρας-letter:
      Ένας χαρακτήρας Unicode των κλάσεων Lu, Ll, Lt, Lm, Lo ή Nl
συνδυασμός-χαρακτήρας:
      Ένας χαρακτήρας Unicode των κλάσεων Mn ή Mc
δεκαδικός-ψηφίο-χαρακτήρας:
      Ένας χαρακτήρας Unicode της κλάσης Nd
χαρακτήρας-σύνδεσης:
      Ένας χαρακτήρας Unicode της κλάσης Pc
χαρακτήρας-μορφοποίησης:
      Ένας χαρακτήρας Unicode της κλάσης Cf

Ένα αναγνωριστικό-σε εισαγωγικά μπορεί να χρησιμοποιηθεί για να επιτρέψει τη χρήση οποιασδήποτε ακολουθίας μηδενικών ή περισσότερων χαρακτήρων Unicode ως αναγνωριστικού, όπως λέξεις-κλειδιά, κενά διαστήματα, σχόλια, τελεστές και σημεία στίξης.

αναγνωριστικό-σε εισαγωγικά:
      #" επιλογή χαρακτήρων λεκτικής-σταθεράςκειμένου "

Σημειώστε ότι οι ακολουθίες διαφυγής και τα διπλά εισαγωγικά για να διαφύγουν εισαγωγικά μπορούν να χρησιμοποιηθούν σε ένα αναγνωριστικό σε εισαγωγικά, όπως ακριβώς σε μια λεκτική σταθερά-κειμένου.

Το παρακάτω παράδειγμα χρησιμοποιεί την παράθεση αναγνωριστικών για ονόματα που περιέχουν χαρακτήρα διαστήματος:

[ 
    #"1998 Sales" = 1000, 
    #"1999 Sales" = 1100, 
    #"Total Sales" = #"1998 Sales" + #"1999 Sales"
]

Το παρακάτω παράδειγμα χρησιμοποιεί την παράθεση αναγνωριστικών για να συμπεριλάβει τον + τελεστή σε ένα αναγνωριστικό:

[ 
    #"A + B" = A + B, 
    A = 1, 
    B = 2 
]

Γενικευμένα αναγνωριστικά

Υπάρχουν δύο θέσεις στην M όπου δεν εισάγονται ασάφειες από αναγνωριστικά που περιέχουν κενά ή που είναι κατά τα άλλα λέξεις-κλειδιά ή αριθμητικές λεκτικές σταθερές. Αυτά τα σημεία είναι τα ονόματα των πεδίων εγγραφής σε μια λεκτική σταθερά εγγραφής και σε έναν τελεστή πρόσβασης πεδίου ([ ]) Εκεί, η M επιτρέπει αυτά τα αναγνωριστικά χωρίς να χρειάζεται να χρησιμοποιηθούν αναγνωριστικά σε εισαγωγικά.

[ 
    Data = [ Base Line = 100, Rate = 1.8 ], 
    Progression = Data[Base Line] * Data[Rate]
]

Τα αναγνωριστικά που χρησιμοποιούνται για το όνομα και τα πεδία πρόσβασης αναφέρονται ως γενικευμένα αναγνωριστικά και ορίζονται ως εξής:

γενικευμένο αναγνωριστικό:
      γενικευμένο-αναγνωριστικό-τμήμα
      γενικευμένο αναγνωριστικό
διαχωρισμένο μόνο με κενά (U+0020)
γενικευμένο-αναγνωριστικό-τμήμα
γενικευμένο-αναγνωριστικό-τμήμα:
      γενικευμένο-αναγνωριστικό-τμήμα
      δεκαδικός-ψηφίο-χαρακτήρας γενικευμένο-αναγνωριστικό-τμήμα
γενικευμένο-αναγνωριστικό-τμήμα:
      λέξη-κλειδί-ή-αναγνωριστικό
      λέξη-κλειδί-ή-αναγνωριστικό τελεία-χαρακτήρας λέξη-κλειδί-ή-αναγνωριστικό

Λέξεις-κλειδιά

Η λέξη-κλειδί είναι μια ακολουθία χαρακτήρων τύπου αναγνωριστικού που είναι δεσμευμένη και δεν μπορεί να χρησιμοποιηθεί ως αναγνωριστικό, εκτός εάν χρησιμοποιείται ο μηχανισμός εισαγωγικών αναγνωριστικού ή όταν επιτρέπεται ένα γενικευμένο αναγνωριστικό.

λέξη-κλειδί: ένα από
       and as each else error false if in is let meta not null or otherwise
       section shared then true try type #binary #date #datetime
       #datetimezone #duration #infinity #nan #sections #shared #table #time

Τελεστές και σημεία στίξης

Υπάρχουν διάφορα είδη τελεστών και σημείων στίξης. Οι τελεστές χρησιμοποιούνται σε παραστάσεις για να περιγράψουν λειτουργίες που περιλαμβάνουν έναν ή περισσότερους τελεστέους. Για παράδειγμα, η παράσταση a + b χρησιμοποιεί τον τελεστή + για να προσθέσει τους δύο τελεστέους a και b. Τα σημεία στίξης αφορούν την ομαδοποίηση και το διαχωρισμό.

τελεστής-ή-σημείο στίξης: ένα από
      , ; = < <= > >= <> + - * / & ( ) [ ] { } @ ! ? ?? => .. ...