mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
@@ -82,7 +82,7 @@ const STATIC_TOKEN_MAP: { [key: string]: TKind } = {
|
|||||||
")": "RIGHT_PAREN"
|
")": "RIGHT_PAREN"
|
||||||
};
|
};
|
||||||
|
|
||||||
const OPERATORS = [".", "===", "==", "+", "!", "||", "&&", ">", "?", "-", "*"];
|
const OPERATORS = ".,===,==,+,!,||,&&,>=,>,<=,<,?,-,*,/,%".split(',');
|
||||||
|
|
||||||
type Tokenizer = (expr: string) => Token | false;
|
type Tokenizer = (expr: string) => Token | false;
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ export function tokenize(expr: string): Token[] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (expr.length) {
|
if (expr.length) {
|
||||||
throw new Error("Tokenizer error...");
|
throw new Error(`Tokenizer error: could not tokenize "${expr}"`);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,15 @@ describe("tokenizer", () => {
|
|||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("various operators", () => {
|
||||||
|
expect(tokenize(">= <= < >")).toEqual([
|
||||||
|
{ type: "OPERATOR", value: ">=" },
|
||||||
|
{ type: "OPERATOR", value: "<=" },
|
||||||
|
{ type: "OPERATOR", value: "<" },
|
||||||
|
{ type: "OPERATOR", value: ">" },
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
test("strings", () => {
|
test("strings", () => {
|
||||||
expect(() => tokenize("'")).toThrow("Invalid expression");
|
expect(() => tokenize("'")).toThrow("Invalid expression");
|
||||||
expect(() => tokenize("'\\")).toThrow("Invalid expression");
|
expect(() => tokenize("'\\")).toThrow("Invalid expression");
|
||||||
|
|||||||
Reference in New Issue
Block a user