diff --git a/README.md b/README.md index 4cd59e3..d510d4e 100644 --- a/README.md +++ b/README.md @@ -109,8 +109,7 @@ ```sql DECLARE -product_price CONSTANT INTEGER = 150; -expense_1_amount CONSTANT INTEGER := -50; +product_price CONSTANT INTEGER = +150; ``` ```sql @@ -173,24 +172,22 @@ DECLARE productPrice3 CONSTANT INTEGER := 150; DECLARE expense_amount_4 CONSTANT ### Грамматика -G[Z] = { VT, VN, P, Z } +G[<ЦК> = <целочисленная константа>]: -Z = <целочисленная константа> +VT = { ‘a’…’z’, ‘A’…’Z’, ‘0’…’9’, ‘:’, ‘;’, ‘+’, ‘-‘, ‘=’, ‘_’ } -VT = { ‘DECLARE’, ‘INTEGER’, ‘CONSTANT’, ‘a’…’z’, ‘A’…’Z’, ‘0’…’9’, ‘:’, ‘;’, ‘+’, ‘-‘, ‘=’, ‘_’ } - -VN = { <целочисленная константа>, <выражение>, <константа>, <присваивание>, <число>, <знак>, <Б>, <Ц> } +VN = { <ЦК>, <константа>, <присваивание>, <число>, З, Б, Ц, E, ID } P = { -1. <целочисленная константа> → ‘DECLARE’ ( <выражение> )+ -2. <выражение> → <id> <константа> <число> ’;’ -3. <id> → <Б> ( <Б> | <Ц> | ‘_’ )* -4. <константа> → ‘CONSTANT’ ’INTEGER’ <присваивание> -5. <число> → [ <знак> ] ( <Ц> )+ -6. <присваивание> → [ ‘:’ ] '=' -7. <знак> → { ‘+’ | ‘-‘ } -8. <Б> → ‘a’ | ‘b’ | … | ‘z’ | ‘A’ | ‘B’ | … | ‘Z’ -9. <Ц> → ‘0’ | ‘1’ | … | ‘9’ +1. <ЦК> → ‘DECLARE’ E +2. E → ID <константа> <число> ’;’ +3. ID → Б { Б | Ц | ‘_’ }
+4. <константа> → ‘CONSTANT’ ’INTEGER’ <присваивание> +5. <число> → З [ Ц ] +6. <присваивание> → ‘:=’ | ‘=’ +7. З → ‘+’ | ‘-‘ | ε +8. Б → ‘a’ | ‘b’ | … | ‘z’ | ‘A’ | ‘B’ | … | ‘Z’ +9. Ц → ‘0’ | ‘1’ | … | ‘9’ }