mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 03:27:34 +00:00
LibWeb: Generate parsing code for CSS math functions
This commit is contained in:
parent
780998b3d5
commit
618c0402a7
6 changed files with 629 additions and 0 deletions
232
Userland/Libraries/LibWeb/CSS/MathFunctions.json
Normal file
232
Userland/Libraries/LibWeb/CSS/MathFunctions.json
Normal file
|
@ -0,0 +1,232 @@
|
|||
{
|
||||
"abs": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"acos": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"asin": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"atan": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"atan2": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "y",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "x",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"clamp": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "min",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "central",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "max",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"cos": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<angle>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"exp": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"hypot": {
|
||||
"is-variadic": true,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"log": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "base",
|
||||
"type": "<number>",
|
||||
"required": false,
|
||||
"default": "e"
|
||||
}
|
||||
]
|
||||
},
|
||||
"max": {
|
||||
"is-variadic": true,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"min": {
|
||||
"is-variadic": true,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"mod": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "divisor",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"pow": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "exponent",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"rem": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "divisor",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"round": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "strategy",
|
||||
"type": "<rounding-strategy>",
|
||||
"required": false,
|
||||
"default": "nearest"
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "interval",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"sign": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<dimension>|<percentage>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"sin": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<angle>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"sqrt": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"tan": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"type": "<number>|<angle>",
|
||||
"required": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -290,6 +290,8 @@ private:
|
|||
ErrorOr<RefPtr<StyleValue>> parse_builtin_value(ComponentValue const&);
|
||||
ErrorOr<RefPtr<StyleValue>> parse_dynamic_value(ComponentValue const&);
|
||||
ErrorOr<RefPtr<CalculatedStyleValue>> parse_calculated_value(Vector<ComponentValue> const&);
|
||||
// NOTE: Implemented in generated code. (GenerateCSSMathFunctions.cpp)
|
||||
ErrorOr<OwnPtr<CalculationNode>> parse_math_function(PropertyID, Function const&);
|
||||
ErrorOr<OwnPtr<CalculationNode>> parse_a_calc_function_node(Function const&);
|
||||
ErrorOr<OwnPtr<CalculationNode>> parse_min_function(Function const&);
|
||||
ErrorOr<OwnPtr<CalculationNode>> parse_max_function(Function const&);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue