WIP: math parser
This commit is contained in:
35
2kyu/evaluate-mathematical-expression/solution.ts
Normal file
35
2kyu/evaluate-mathematical-expression/solution.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
type Token = number | '+' | '-' | '*' | '/' | '(' | ')';
|
||||
|
||||
|
||||
|
||||
type ASTNode = {
|
||||
type: string,
|
||||
}
|
||||
|
||||
type OperatorNode = {
|
||||
type: 'operator',
|
||||
value: '+' | '-' | '*' | '/',
|
||||
left: ASTNode,
|
||||
right: ASTNode,
|
||||
}
|
||||
|
||||
type NumberNode = {
|
||||
type: 'number',
|
||||
value: number,
|
||||
}
|
||||
|
||||
type GroupNode = {
|
||||
type: 'group',
|
||||
value: ASTNode,
|
||||
}
|
||||
|
||||
type NegationNode = {
|
||||
type: 'negation',
|
||||
value: ASTNode,
|
||||
}
|
||||
|
||||
export function calc(expression: string): number {
|
||||
// evaluate `expression` and return result
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user