mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-02 07:19:30 +08:00
51 lines
1,004 B
Text
51 lines
1,004 B
Text
export interface MathExpression {
|
|
type: 'MathExpression';
|
|
right: CalcNode;
|
|
left: CalcNode;
|
|
operator: '*' | '+' | '-' | '/';
|
|
}
|
|
|
|
export interface ParenthesizedExpression {
|
|
type: 'ParenthesizedExpression';
|
|
content: CalcNode;
|
|
}
|
|
|
|
export interface DimensionExpression {
|
|
type:
|
|
| 'LengthValue'
|
|
| 'AngleValue'
|
|
| 'TimeValue'
|
|
| 'FrequencyValue'
|
|
| 'PercentageValue'
|
|
| 'ResolutionValue'
|
|
| 'EmValue'
|
|
| 'ExValue'
|
|
| 'ChValue'
|
|
| 'RemValue'
|
|
| 'VhValue'
|
|
| 'VwValue'
|
|
| 'VminValue'
|
|
| 'VmaxValue';
|
|
value: number;
|
|
unit: string;
|
|
}
|
|
|
|
export interface NumberExpression {
|
|
type: 'Number';
|
|
value: number;
|
|
}
|
|
|
|
export interface FunctionExpression {
|
|
type: 'Function';
|
|
value: string;
|
|
}
|
|
|
|
export type ValueExpression = DimensionExpression | NumberExpression;
|
|
|
|
export type CalcNode = MathExpression | ValueExpression | FunctionExpression | ParenthesizedExpression;
|
|
|
|
export interface Parser {
|
|
parse: (arg: string) => CalcNode;
|
|
}
|
|
|
|
export const parser: Parser;
|