Adding C# Support. Badly tested currently, but kindof working

This commit is contained in:
K35
2022-01-05 21:16:17 +00:00
parent 94832ef682
commit 49425cab39
20 changed files with 3825 additions and 71 deletions

View File

@ -61,7 +61,10 @@ export type Step = [
TypeDefinition | EnumDefinition | ServiceDefinition
];
export type IR = Step[];
export type IR = {
options: { [key:string]: string},
steps: Step[]
};
export default function get_ir(parsed: Parsed): IR {
log("Generatie IR from parse output");
@ -72,6 +75,7 @@ export default function get_ir(parsed: Parsed): IR {
// Verifiy and generating steps
let steps: Step[] = [];
let options = {} as any;
parsed.forEach((statement) => {
log("Working on statement of type %s", statement.type);
@ -276,10 +280,15 @@ export default function get_ir(parsed: Parsed): IR {
functions,
} as ServiceDefinition,
]);
} else if(statement.type == "define") {
options[statement.key] = statement.value;
} else {
throw new IRError(statement, "Invalid statement!");
}
});
return steps;
return {
options,
steps
};
}