summaryrefslogtreecommitdiff
path: root/node_modules/postcss-calc/src/parser.d.ts
blob: 8bdb1b5f9deeb9d0c5d39e8d4c79d253bef75444 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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;