mirror of
https://github.com/renovatebot/renovate.git
synced 2025-05-13 08:01:49 +00:00
20 lines
578 B
TypeScript
20 lines
578 B
TypeScript
import { lang, query as q } from 'good-enough-parser';
|
|
import { Ctx } from './context';
|
|
import { extensionTags } from './extension-tags';
|
|
import type { ResultFragment } from './fragments';
|
|
import { rules } from './rules';
|
|
|
|
const rule = q.alt<Ctx>(rules, extensionTags);
|
|
|
|
const query = q.tree<Ctx>({
|
|
type: 'root-tree',
|
|
maxDepth: 16,
|
|
search: rule,
|
|
});
|
|
|
|
const starlarkLang = lang.createLang('starlark');
|
|
|
|
export function parse(input: string): ResultFragment[] {
|
|
const parsedResult = starlarkLang.query(input, query, new Ctx(input));
|
|
return parsedResult?.results ?? [];
|
|
}
|