Αυτό το έγγραφο παρέχει οδηγίες για την υλοποίηση ενός αναλυτή.
Γενικά
- Ανάλυσε όλα τα αρχεία που υποβάλλονται, εκτός από τα αρχεία tests/invalidator/editor/example/exemplar
- Μην στοχεύεις στην 100% ορθότητα, που θα είναι σχεδόν αδύνατο να επιτευχθεί.
Δεν πειράζει αν ο αναλυτής δεν μπορεί να βρει όλα τα προβλήματα ή δεν μπορεί να συμπεράνει ορισμένες ετικέτες.
Αν η γλώσσα σου απαιτεί ένα βήμα μεταγλώττισης, λάβε υπόψη τα παρακάτω σημεία:
- Η μεταγλώττιση της λύσης συνήθως επιτρέπει μεγαλύτερη ακρίβεια.
Για παράδειγμα, ο οριστικός τύπος οποιασδήποτε τιμής είναι γνωστός μόνο μετά τη μεταγλώττιση.
Να έχεις πάντως υπόψη σου τα υπέρ και τα κατά (π.χ. πιο αργή εκτέλεση και μεγαλύτερη χρήση μνήμης).
- Σκέψου τη μεταγλώττιση στη μνήμη (αν είναι εφικτό), για καλύτερες επιδόσεις.
Δοκιμές
- Να έχεις ένα εκτεταμένο σύνολο δοκιμών
- Χρησιμοποίησε golden tests για να επαληθεύσεις τη συμπεριφορά του αναλυτή.
Αυτές οι δοκιμές θα πρέπει να χρησιμοποιούν την εικόνα Docker που θα γίνει deploy για την επαλήθευση του αναλυτή.
- Σκέψου να έχεις δοκιμές για κάθε προσέγγιση.
Θέλεις ο αναλυτής να λειτουργεί καλά για αυτές τις λύσεις, και θα βοηθήσει αργότερα στην ανάθεση ετικετών στις προσεγγίσεις.