summaryrefslogtreecommitdiff
path: root/chapter13
diff options
context:
space:
mode:
Diffstat (limited to 'chapter13')
-rw-r--r--chapter13/README.ja.md2
-rw-r--r--chapter13/README.md2
-rw-r--r--chapter13/docs/13-grammar.ja.md136
-rw-r--r--chapter13/docs/13-grammar.md132
4 files changed, 4 insertions, 268 deletions
diff --git a/chapter13/README.ja.md b/chapter13/README.ja.md
index d16b96ed..de98df7a 100644
--- a/chapter13/README.ja.md
+++ b/chapter13/README.ja.md
@@ -11,6 +11,8 @@
また、この章ではかなり詳しいグラフアルゴリズムをいくつか紹介します。グラフ理論を復習しておくとよいでしょう。
+文法は[第12章](../chapter12/docs/12-grammar.ja.md)から変わりません。
+
# 目次
1. [概要](#概要)
diff --git a/chapter13/README.md b/chapter13/README.md
index f86abe57..7df00642 100644
--- a/chapter13/README.md
+++ b/chapter13/README.md
@@ -13,6 +13,8 @@ Loads and Stores.
Also in this chapter, we'll be presenting several fairly detailed graph
algorithms. You might want to brush up on your graph theory!
+The grammar is unchanged from [Chapter 12](../chapter12/docs/12-grammar.md).
+
# Table of Contents
1. [High Level Overview](#high-level-overview)
diff --git a/chapter13/docs/13-grammar.ja.md b/chapter13/docs/13-grammar.ja.md
deleted file mode 100644
index 9f18bc74..00000000
--- a/chapter13/docs/13-grammar.ja.md
+++ /dev/null
@@ -1,136 +0,0 @@
-# 第13章の文法
-
-[English](13-grammar.md) | 日本語
-
-この文書は [原文](13-grammar.md) の日本語訳です。
-
-[第13章に戻る](../README.ja.md)
-
-```antlrv4
-grammar SimpleLanguage;
-
-program
- : statement+ EOF
- ;
-
-statement
- : returnStatement
- | structDeclaration
- | declStatement
- | blockStatement
- | expressionStatement
- | ifStatement
- | whileStatement
- | breakStatement
- | continueStatement
- ;
-
-PRIMTYPE
- : 'int'
- ;
-
-field
- : PRIMTYPE IDENTIFIER ';'
- | structName ('?')? IDENTIFIER ';'
- ;
-
-fields
- : field+
- ;
-
-structDeclaration
- : 'struct' IDENTIFIER '{' fields '}'
- ;
-
-whileStatement
- : 'while' '(' expression ')' statement
- ;
-
-breakStatement
- : 'break' ';'
- ;
-
-continueStatement
- : 'continue' ';'
- ;
-
-ifStatement
- : 'if' '(' expression ')' statement ('else' statement)?
- ;
-
-
-expressionStatement
- : IDENTIFIER '=' expression ';'
- | fieldExpression '=' expression ';'
- ;
-
-blockStatement
- : '{' statement+ '}'
- ;
-
-structName
- : IDENTIFIER
- ;
-
-declStatement
- : PRIMTYPE IDENTIFIER '=' expression ';'
- | structName ('?')? IDENTIFIER '=' expression ';'
- ;
-
-returnStatement
- : 'return' expression ';'
- ;
-
-expression
- : comparisonExpression
- ;
-
-comparisonExpression
- : additiveExpression (('==' | '!='| '>'| '<'| '>='| '<=') additiveExpression)*
- ;
-
-additiveExpression
- : multiplicativeExpression (('+' | '-') multiplicativeExpression)*
- ;
-
-multiplicativeExpression
- : unaryExpression (('*' | '/') unaryExpression)*
- ;
-
-unaryExpression
- : ('-') unaryExpression
- | '!' unaryExpression
- | primaryExpression
- ;
-
-newExpression
- : 'new' IDENTIFIER
- ;
-
-fieldExpression
- : primaryExpression '.' IDENTIFIER
- ;
-
-primaryExpression
- : IDENTIFIER
- | INTEGER_LITERAL
- | 'true'
- | 'false'
- | 'null'
- | newExpression
- | '(' expression ')'
- | fieldExpression
- ;
-
-INTEGER_LITERAL
- : [1-9][0-9]*
- | [0]
- ;
-
-IDENTIFIER
- : NON_DIGIT (NON_DIGIT | DEC_DIGIT)*
- ;
-
-NON_DIGIT: [a-zA-Z_];
-DEC_DIGIT: [0-9];
-```
diff --git a/chapter13/docs/13-grammar.md b/chapter13/docs/13-grammar.md
deleted file mode 100644
index 40cfc432..00000000
--- a/chapter13/docs/13-grammar.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# Grammar for Chapter 13
-
-English | [日本語](13-grammar.ja.md)
-
-```antlrv4
-grammar SimpleLanguage;
-
-program
- : statement+ EOF
- ;
-
-statement
- : returnStatement
- | structDeclaration
- | declStatement
- | blockStatement
- | expressionStatement
- | ifStatement
- | whileStatement
- | breakStatement
- | continueStatement
- ;
-
-PRIMTYPE
- : 'int'
- ;
-
-field
- : PRIMTYPE IDENTIFIER ';'
- | structName ('?')? IDENTIFIER ';'
- ;
-
-fields
- : field+
- ;
-
-structDeclaration
- : 'struct' IDENTIFIER '{' fields '}'
- ;
-
-whileStatement
- : 'while' '(' expression ')' statement
- ;
-
-breakStatement
- : 'break' ';'
- ;
-
-continueStatement
- : 'continue' ';'
- ;
-
-ifStatement
- : 'if' '(' expression ')' statement ('else' statement)?
- ;
-
-
-expressionStatement
- : IDENTIFIER '=' expression ';'
- | fieldExpression '=' expression ';'
- ;
-
-blockStatement
- : '{' statement+ '}'
- ;
-
-structName
- : IDENTIFIER
- ;
-
-declStatement
- : PRIMTYPE IDENTIFIER '=' expression ';'
- | structName ('?')? IDENTIFIER '=' expression ';'
- ;
-
-returnStatement
- : 'return' expression ';'
- ;
-
-expression
- : comparisonExpression
- ;
-
-comparisonExpression
- : additiveExpression (('==' | '!='| '>'| '<'| '>='| '<=') additiveExpression)*
- ;
-
-additiveExpression
- : multiplicativeExpression (('+' | '-') multiplicativeExpression)*
- ;
-
-multiplicativeExpression
- : unaryExpression (('*' | '/') unaryExpression)*
- ;
-
-unaryExpression
- : ('-') unaryExpression
- | '!' unaryExpression
- | primaryExpression
- ;
-
-newExpression
- : 'new' IDENTIFIER
- ;
-
-fieldExpression
- : primaryExpression '.' IDENTIFIER
- ;
-
-primaryExpression
- : IDENTIFIER
- | INTEGER_LITERAL
- | 'true'
- | 'false'
- | 'null'
- | newExpression
- | '(' expression ')'
- | fieldExpression
- ;
-
-INTEGER_LITERAL
- : [1-9][0-9]*
- | [0]
- ;
-
-IDENTIFIER
- : NON_DIGIT (NON_DIGIT | DEC_DIGIT)*
- ;
-
-NON_DIGIT: [a-zA-Z_];
-DEC_DIGIT: [0-9];
-```