1*c966c276SAndrew Rist# ************************************************************* 2*c966c276SAndrew Rist# 3*c966c276SAndrew Rist# Licensed to the Apache Software Foundation (ASF) under one 4*c966c276SAndrew Rist# or more contributor license agreements. See the NOTICE file 5*c966c276SAndrew Rist# distributed with this work for additional information 6*c966c276SAndrew Rist# regarding copyright ownership. The ASF licenses this file 7*c966c276SAndrew Rist# to you under the Apache License, Version 2.0 (the 8*c966c276SAndrew Rist# "License"); you may not use this file except in compliance 9*c966c276SAndrew Rist# with the License. You may obtain a copy of the License at 10*c966c276SAndrew Rist# 11*c966c276SAndrew Rist# http://www.apache.org/licenses/LICENSE-2.0 12*c966c276SAndrew Rist# 13*c966c276SAndrew Rist# Unless required by applicable law or agreed to in writing, 14*c966c276SAndrew Rist# software distributed under the License is distributed on an 15*c966c276SAndrew Rist# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*c966c276SAndrew Rist# KIND, either express or implied. See the License for the 17*c966c276SAndrew Rist# specific language governing permissions and limitations 18*c966c276SAndrew Rist# under the License. 19*c966c276SAndrew Rist# 20*c966c276SAndrew Rist# ************************************************************* 21*c966c276SAndrew Rist 22cdf0e10cSrcweirBased on the C grammar for arithmetic expressions 23cdf0e10cSrcweir================================================= 24cdf0e10cSrcweir 25cdf0e10cSrcweirnumber_digit = '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9' 26cdf0e10cSrcweir 27cdf0e10cSrcweirnumber_exponent = 'e'|'E' 28cdf0e10cSrcweir 29cdf0e10cSrcweirbasic_number = basic_number number_digit | number_digit 30cdf0e10cSrcweir 31cdf0e10cSrcweirnumber = 32cdf0e10cSrcweir basic_number | 33cdf0e10cSrcweir 34cdf0e10cSrcweir basic_number number_exponent basic_number | 35cdf0e10cSrcweir basic_number number_exponent '-' basic_number | 36cdf0e10cSrcweir basic_number number_exponent '+' basic_number | 37cdf0e10cSrcweir 38cdf0e10cSrcweir '.' basic_number number_exponent basic_number | 39cdf0e10cSrcweir '.' basic_number number_exponent '-' basic_number | 40cdf0e10cSrcweir '.' basic_number number_exponent '+' basic_number | 41cdf0e10cSrcweir 42cdf0e10cSrcweir basic_number '.' number_exponent basic_number | 43cdf0e10cSrcweir basic_number '.' number_exponent '-' basic_number | 44cdf0e10cSrcweir basic_number '.' number_exponent '+' basic_number | 45cdf0e10cSrcweir 46cdf0e10cSrcweir basic_number '.' basic_number number_exponent basic_number | 47cdf0e10cSrcweir basic_number '.' basic_number number_exponent '-' basic_number | 48cdf0e10cSrcweir basic_number '.' basic_number number_exponent '+' basic_number 49cdf0e10cSrcweir 50cdf0e10cSrcweir 51cdf0e10cSrcweiridentifier = '$'|'pi'|'e'|'X'|'Y'|'Width'|'Height' 52cdf0e10cSrcweir ^ ^ ^ ^ ^ 53cdf0e10cSrcweir | | | | | 54cdf0e10cSrcweir '$' in PPT | | | | 55cdf0e10cSrcweir '#ppt_x' in PPT | | | 56cdf0e10cSrcweir '#ppt_y' in PPT | | 57cdf0e10cSrcweir '#ppt_w' in PPT | 58cdf0e10cSrcweir '#ppt_h' in PPT 59cdf0e10cSrcweir 60cdf0e10cSrcweirunary_function = 'abs'|'sqrt'|'sin'|'cos'|'tan'|'atan'|'acos'|'asin'|'exp'|'log' 61cdf0e10cSrcweirbinary_function = 'min'|'max' 62cdf0e10cSrcweir 63cdf0e10cSrcweir 64cdf0e10cSrcweirbasic_expression = 65cdf0e10cSrcweir number | 66cdf0e10cSrcweir identifier | 67cdf0e10cSrcweir unary_function '(' additive_expression ')' | 68cdf0e10cSrcweir binary_function '(' additive_expression ',' additive_expression ')' | 69cdf0e10cSrcweir '(' additive_expression ')' 70cdf0e10cSrcweir 71cdf0e10cSrcweirunary_expression = '-' basic_expression 72cdf0e10cSrcweir 73cdf0e10cSrcweirmultiplicative_expression = 74cdf0e10cSrcweir basic_expression | 75cdf0e10cSrcweir multiplicative_expression '*' basic_expression | 76cdf0e10cSrcweir multiplicative_expression '/' basic_expression 77cdf0e10cSrcweir 78cdf0e10cSrcweiradditive_expression = 79cdf0e10cSrcweir multiplicative_expression | 80cdf0e10cSrcweir additive_expression '+' multiplicative_expression | 81cdf0e10cSrcweir additive_expression '-' multiplicative_expression 82cdf0e10cSrcweir 83