Sistemski softver
Elektrotehnički fakultet
Univerzitet u Beogradu
Na projektu iz SS je potrebno pisati test primere u nekom (zamišljenom) asembleru, koji nema opciju za syntax highlighting ni u jednom editoru. Moguće je, ipak, podesiti sublime text 3 tako da ima syntax highlighting za bilo kakav asembler.
- Pokrenuti
install_sublime.sh
skriptu. Ona će instalirati Sublime text 3 editor - Pokrenuti Sublime text 3 editor. Iz komandne linije se može pokrenuti komandom
subl
- Pritisnuti
Ctrl+Shift+P
, zatim ukucatiInstall Package Control
i izabrati tu opciju - Ponovo pritisnuti
Ctrl+Shift+P
, i izabratiPackage Control: Install package
- Izabrati
PackageDev
- Ponovo
Ctrl+Shift+P
, i izabratiPackageDev: New Syntax Definition
- Otvoriće se fajl, popuniti ga sadržajem i snimiti na lokaciju koju Sublime ponudi. Snimiti sa ekstenzijom
sublime-syntax
. Sada može da se koristi nova definicija sintakse, sa novim highlighting-om
Skup pravila se definiše kao skup regexa i onoga šta oni predstavljaju.
Fajl MicroRISC Assembly.sublime-syntax
je fajl sa pravilima za projekat 2017.
Fajl helloworld.ss
je test primer za projekat 2017. koji koristi ovu sintaksnu definiciju.
Ovde se nalazi virtuelna mašina sa podešenim editorom za projekat 2017.
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Example
file_extensions:
- ex
- am
- ple
scope: source
contexts:
main:
- match: '\b(?i)(v)?(load|store|jump|bz|bgt|add|sub|mul|div|call|ret|halt|push|pop)\b'
scope: keyword.control.instruction
- match: '\b(?i)(r[0-9]|r1[0-5]|pc|sp)\b'
scope: variable.parameter.register
- match: '\b[0-9]*\b'
scope: constant.numeric.integer
- match: '".*"'
scope: string.quoted
- match: '(\s)*(;|\/\/|@).*$'
scope: comment.line
- match: '(\+|\-|\*|\/)'
scope: keyword.operator
- match: ','
scope: punctuation.separator
name
definiše ime sintaksne definicijefile_extensions
definišu ekstenzije fajlova u kojima se koristi ova sintaksa- Ostatak se piše u
main
kontekstu - Svako pravilo se piše kao jedan
match
scope
se definiše zamatch
, i označava šta je deo teksta koji je matchovan regexom. Ovde se nalazi spisak svih scopeova koji mogu da se koriste.