新增: - backend/venv/ - Python 虚拟环境 - backend/start.sh - 启动脚本(使用虚拟环境) - backend/requirements.txt - 依赖列表 - .gitignore - 忽略虚拟环境和缓存文件 说明: - 每个项目使用独立虚拟环境 - 避免依赖冲突 - 启动脚本自动创建和激活虚拟环境
52 lines
1004 B
TypeScript
52 lines
1004 B
TypeScript
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;
|