Web-Ide mit aufgenommen
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"fileTypes": [
|
||||
"vm"
|
||||
],
|
||||
"name": "Virtual Machine Language",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#arithmetic-command"
|
||||
},
|
||||
{
|
||||
"include": "#memory-access-command"
|
||||
},
|
||||
{
|
||||
"include": "#program-flow-command"
|
||||
},
|
||||
{
|
||||
"include": "#function-calling-command"
|
||||
},
|
||||
{
|
||||
"include": "#comment"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"arithmetic-command": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Performs arithmetic and logical operations on the stack.",
|
||||
"match": "\\b(add|sub|neg|eq|gt|lt|and|or|not|shiftleft|shiftright)\\b",
|
||||
"name": "keyword.operator"
|
||||
}
|
||||
]
|
||||
},
|
||||
"memory-access-command": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Transfers data between the stack and virtual memory segments.",
|
||||
"match": "\\b(push|pop)\\s+([^ \\/]*)\\s+(\\d+)\\b",
|
||||
"name": "keyword.operator",
|
||||
"captures": {
|
||||
"2": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Segment",
|
||||
"match": "[a-zA-Z\\_\\.\\$\\:]+[a-zA-Z\\_\\.\\$\\:\\d]*",
|
||||
"name": "storage.type"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Location",
|
||||
"match": "\\d+",
|
||||
"name": "constant.numeric"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"program-flow-command": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Facilitates conditional and unconditional branching operations.",
|
||||
"match": "\\b(label|goto|if-goto)\\s+([^ \\/]*)\\b",
|
||||
"name": "keyword.control",
|
||||
"captures": {
|
||||
"2": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Label",
|
||||
"match": "[a-zA-Z\\_\\.\\$\\:]+[a-zA-Z\\_\\.\\$\\:\\d]*",
|
||||
"name": "entity.name.section"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"function-calling-command": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Defines/calls functions.",
|
||||
"match": "\\b(function|call)\\s+([^ \\/]*)\\s+(\\w+)\\b",
|
||||
"name": "keyword.control",
|
||||
"captures": {
|
||||
"2": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Function name",
|
||||
"match": "[a-zA-Z\\_\\.\\$\\:]+[a-zA-Z\\_\\.\\$\\:\\d]*",
|
||||
"name": "entity.name.function"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Number of local variables/arguments passed",
|
||||
"match": "\\d+",
|
||||
"name": "constant.numeric"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"comment": "Returns from functions.",
|
||||
"match": "return",
|
||||
"name": "keyword.control"
|
||||
}
|
||||
]
|
||||
},
|
||||
"comment": {
|
||||
"patterns": [
|
||||
{
|
||||
"comment": "Inline comment",
|
||||
"begin": "\\/\\/",
|
||||
"end": "\\n",
|
||||
"name": "comment.line.double-slash"
|
||||
},
|
||||
{
|
||||
"comment": "Multiline comment",
|
||||
"begin": "\\/\\*",
|
||||
"end": "\\*\\/",
|
||||
"name": "comment.block"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"scopeName": "source.vm"
|
||||
}
|
||||
Reference in New Issue
Block a user