This commit is contained in:
SimonFJ20 2024-12-13 10:14:36 +01:00
parent 8c172ccbe4
commit da1dbb92cd
3 changed files with 100 additions and 86 deletions

View File

@ -1,7 +1,6 @@
import { Reporter } from "./info.ts";
import { Pos, Token } from "./token.ts";
export class Lexer {
private index = 0;
private line = 1;
@ -77,8 +76,7 @@ export class Lexer {
if (this.done()) {
break;
}
value +=
{
value += {
n: "\n",
t: "\t",
"0": "\0",
@ -132,6 +130,16 @@ export class Lexer {
this.step();
return this.token("->", pos);
}
if (first === ":") {
if (!this.done() && this.test(":")) {
this.step();
if (!this.done() && this.test("<")) {
this.step();
return this.token("::<", pos);
}
return this.token("::", pos);
}
}
return this.token(first, pos);
}
if (this.test("/")) {

View File

@ -26,6 +26,8 @@ syn match Operator '>='
syn match Operator '\.'
syn match Operator ':'
syn match Operator '->'
syn match Operator '::'
syn match Operator '::<'
syn match Number '0'
syn match Number '[1-9][0-9]*'

View File

@ -61,7 +61,7 @@
"operators": {
"patterns": [
{
"match": "\\+|\\-|\\*|\\/|=|(==)|(!=)|<|>|(<=)|(>=)|\\.|:|(\\->)",
"match": "\\+|\\-|\\*|\\/|=|(==)|(!=)|<|>|(<=)|(>=)|\\.|:|(\\->)|(::)|(::<)",
"name": "keyword.operator.slige"
}
]
@ -89,8 +89,12 @@
"idents": {
"patterns": [
{
"match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b",
"match": "\\b[a-z_][a-zA-Z0-9_]*\\b",
"name": "variable.other.slige"
},
{
"match": "\\b[A-Z][a-zA-Z0-9_]*\\b",
"name": "entity.name.type.slige"
}
]
}