Adding C# Support. Badly tested currently, but kindof working
This commit is contained in:
13
src/ir.ts
13
src/ir.ts
@ -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
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user