mirror of
https://github.com/zadam/trilium.git
synced 2025-10-09 23:18:46 +08:00
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
import lex from "./apps/server/dist/services/search/services/lex.js";
|
|
import parse from "./apps/server/dist/services/search/services/parse.js";
|
|
import SearchContext from "./apps/server/dist/services/search/search_context.js";
|
|
|
|
// Test the integration of the lexer and parser
|
|
const testCases = [
|
|
"=example",
|
|
"example",
|
|
"=hello world"
|
|
];
|
|
|
|
for (const query of testCases) {
|
|
console.log(`\n=== Testing: "${query}" ===`);
|
|
|
|
const lexResult = lex(query);
|
|
console.log("Lex result:");
|
|
console.log(" Fulltext tokens:", lexResult.fulltextTokens.map(t => t.token));
|
|
console.log(" Leading operator:", lexResult.leadingOperator || "(none)");
|
|
|
|
const searchContext = new SearchContext.default({ fastSearch: false });
|
|
|
|
try {
|
|
const expression = parse.default({
|
|
fulltextTokens: lexResult.fulltextTokens,
|
|
expressionTokens: [],
|
|
searchContext,
|
|
originalQuery: query,
|
|
leadingOperator: lexResult.leadingOperator
|
|
});
|
|
|
|
console.log("Parse result: Success");
|
|
console.log(" Expression type:", expression.constructor.name);
|
|
} catch (e) {
|
|
console.log("Parse result: Error -", e.message);
|
|
}
|
|
}
|