JPH01187635A - Analysis system for reduction contention - Google Patents
Analysis system for reduction contentionInfo
- Publication number
- JPH01187635A JPH01187635A JP1196288A JP1196288A JPH01187635A JP H01187635 A JPH01187635 A JP H01187635A JP 1196288 A JP1196288 A JP 1196288A JP 1196288 A JP1196288 A JP 1196288A JP H01187635 A JPH01187635 A JP H01187635A
- Authority
- JP
- Japan
- Prior art keywords
- contention
- reduction
- syntactic
- syntax
- analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 40
- 238000003696 structure analysis method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000002860 competitive effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はデータ構造解析方式におけるBNF(Baek
us −Nour form )形式で与えられた入力
構文規則に基づ(SLR(1)構文解析方式に関するも
ので、特に還元競合の解析方式に関するものであるO
〔従来の技術〕
従来、この種のデータ構造解析方式では、LIL構文解
析と呼ばれる解析方式が有名である。LR構文解析は、
まず与えられた入力構文規則の構造を解析をしている途
中の状態をLR(0)項と呼び、L)L(01項の集合
であるLR構文解析状態を幾つかの核となるL几(0)
項から生成し、あるL几構文解析状態にいるときに次に
読まれる入力記号により次のL几構文解析状態へ遷移す
るようなテーブルを生成し、構文解析を行う手法である
。このL几構文解析において、次に読まれる入力構文記
号により、次に遷移するLl(構文解析状態かさだまら
ない状態が不都合な状態であり、このような不都合な状
態が競合の発生している状態である。構文規則中ある記
号の次となシうる記号の集合であるフォロー(fol
1ow ) と呼ばれる集合を構文規則中の記号列の
先頭となりうる記号の集合ファースト(first )
を利用して求め、前記follow集合を不都合な状態
の解決に、利用する構文解析方法がSLR(1)構文解
析であシ、LR構文解析手法のなかでも良く用いられる
手法である(「コンパイラ」中田育男、産業図書100
〜126頁)、このようなL8構文解析において、競合
が発生した場合の競合状態の解析は、競合の発生してい
る状態中、競合をおこしているL1%(0)項を捜して
、そのL几(0)項に対応する構文規則とその場合の入
力記号を表示するだけであった。例えば、第3図のよう
な構文規則が入力されたときの表示例としては第6図に
示すようになっていた。[Detailed Description of the Invention] [Industrial Field of Application] The present invention relates to BNF (Baek
(us -Nour form) Based on input syntax rules given in the form Among structural analysis methods, an analysis method called LIL syntax analysis is famous.LR syntax analysis is
First, the state in the middle of parsing the structure of a given input syntax rule is called the LR(0) term, and the LR parsing state, which is a set of L)L(01 terms, is divided into several core L-terms. (0)
This is a method of parsing by generating a table that is generated from a term and transitions to the next L-level parsing state depending on the next input symbol read when in a certain L-level parsing state. In this L parsing, the input syntax symbol read next causes the next transition to Ll (parsing state A state that does not overlap is an inconvenient state, and such an inconvenient state is a state where a conflict occurs. Follow (fol) is a set of symbols that can follow a certain symbol in a syntax rule.
1ow ) is a set of symbols that can be the beginning of a symbol string in a syntactic rule.
The syntax analysis method that uses the follow set to resolve the inconvenient state is SLR (1) syntax analysis, which is a method that is often used among the LR syntax analysis methods (compiler). Ikuo Nakata, Industrial Books 100
(pages 126 to 126), when a conflict occurs in such L8 syntax analysis, the analysis of the conflict state is to search for the L1%(0) term causing the conflict in the state where the conflict is occurring, and then It only displayed the syntax rules corresponding to the L(0) term and the input symbols in that case. For example, when a syntax rule such as that shown in FIG. 3 is input, an example of the display is shown in FIG. 6.
上述した競合の解析において競合の発生している状態中
、競合をおこしているL几(01項を捜して、そのLR
fO1項に対応する構文規則とその場合の入力記号を表
示するだけであシ、競合の原因を決定するのが困難であ
った。本発明の目的は、競合中、還元競合と呼ばれる競
合においてより詳細な情報を表示する競合解析を行うこ
とである。In the conflict analysis mentioned above, in the state where a conflict is occurring, search for the L (term 01) that is causing the conflict and calculate its LR
Since the syntax rule corresponding to the fO1 term and the input symbol in that case are only displayed, it is difficult to determine the cause of the conflict. An object of the present invention is to perform a conflict analysis that displays more detailed information during a conflict, which is called a reduction conflict.
本発明の還元競合解析方式では、BNF形式で与えられ
た構文規則を入力とし、その構文規則に基づくL8構文
解析手法中特にS 1. R(1)構文解析を行うデー
タ構造解析方式において、非終端記号とそのfollo
w集今に含まれる終端記号が与えられたときに、構文木
上で前記非終端記号と前記終端記号の共通の祖先からの
パスを検索し、その結果、前記構文規則がS L R(
1)文法でない場合に、還元競合が発生する構文構造の
例を表示する。In the reduced conflict analysis method of the present invention, syntax rules given in BNF format are input, and among the L8 syntax analysis methods based on the syntax rules, especially S1. R(1) In a data structure analysis method that performs syntactic analysis, non-terminal symbols and their follo
Given a terminal symbol included in the w collection, a path from the common ancestor of the non-terminal symbol and the terminal symbol is searched on the syntax tree, and as a result, the syntax rule is S L R (
1) Display examples of syntactic structures in which reduction conflicts occur when they are not grammars.
次に、本発明の実施例について図面を参照して説明する
。Next, embodiments of the present invention will be described with reference to the drawings.
第1図は本発明の還元競合解析方式の一実施例の構成図
である。第1図においてlは入力された構文規則に基づ
き、〔従来の技術〕で述べたようなS L R(1)解
析を行う構文規則解析部、2は前記構文規則がS L
R(1)文法でない場合に発生する競合の状態を認識す
る競合認識部、3は還元競合を解析し、還元競合が発生
する構文構造の例とその構造を表示する還元競合解析部
である。FIG. 1 is a block diagram of an embodiment of the reduction competition analysis method of the present invention. In FIG. 1, 1 is a syntax rule analysis unit that performs S L R (1) analysis as described in [Prior Art] based on an input syntax rule, and 2 is a syntax rule analysis unit that performs S L R (1) analysis based on an input syntax rule.
R(1) is a conflict recognition unit that recognizes the state of conflict that occurs when it is not a grammar, and 3 is a reduction conflict analysis unit that analyzes reduction conflicts and displays examples of syntactic structures in which reduction conflicts occur and their structures.
第2図は第1図3における還元競合解析及び、還元競合
情報表示を行うだめの手段において、構文木上で非終端
記号と終端記号の共通の祖先からのパスを検索し、構文
構造の例とその構造を表示する処理フローである。Figure 2 shows an example of a syntactic structure by searching for a path from the common ancestor of a non-terminal symbol and a terminal symbol on a syntax tree as a means of performing the reduced conflict analysis and display of reduced conflict information in Figure 1 and 3. This is a processing flow that displays the structure.
第3図はSLR(1)文法でない入力構文規則の例、第
4図+1) 、 +2)は第3図の構文規則において還
元競合を発生する構文木の例、第5図は第6図2行目の
構文規則”Nl:T4 T5°の還元状態の解析情報表
示の例である。Figure 3 is an example of an input syntax rule that is not an SLR (1) grammar, Figure 4 +1), +2) is an example of a syntax tree that causes reduction conflicts in the syntax rules of Figure 3, and Figure 5 is Figure 6.2. This is an example of displaying the analysis information of the reduced state of the syntax rule "Nl:T4 T5°" in line 1.
まず、第1図を参照して、本発明の還元競合解析の処理
概略を説明する。入力された構文規則は、構文規則解析
部1に渡され、SLR(1)構文解析を行う。前記構文
規則が5L)L(1)文法でない場合、競合認識部2で
、発生する競合の状態を認識する。First, the outline of the reduction competition analysis process of the present invention will be explained with reference to FIG. The input syntax rules are passed to the syntax rule analysis unit 1 and subjected to SLR(1) syntax analysis. If the syntax rule is not a 5L)L(1) grammar, the conflict recognition unit 2 recognizes the conflict state that occurs.
競合認識部2は、競合が発生した状態に還元状態が含ま
れる場合には、還元競合解析部3で還元競合を解析し、
還元競合が発生した規則の例とその構造を表示する。If the conflict recognition unit 2 includes a reduction state in the state in which a conflict has occurred, the reduction conflict analysis unit 3 analyzes the reduction conflict,
Display an example of a rule with a reduction conflict and its structure.
次に第2図を参照して、還元競合が発生した場合の還元
状態の規則に関する情報の解析及び、表示方式の主な処
理フローを説明する。前記規則の左辺記号をNTとし、
競合が発生した場合の入力記号をTとする。まず、ステ
ップ1でNTを右辺に持つ規則を捜し、その規則を几と
する。ステップ2でNTが規則比の右辺の最も右であれ
ば、ステップ3でこの規則が既にスタックにブツシュさ
れているか否かをチエツクし、ブツシュされている場合
、ステップ4でスタックをポツプして、ステップ2に戻
る。ステップ2でNTが規則比の右辺の最も右にない場
合、ステップ5で規則比の右辺中のNTのすぐ右の記号
をNTNとする。ステップ6でNTNが記号Tであるか
、又は、NTNのfirst集合にTが含まれているか
をチエツクし、条件を満たすとき、ステップ7でスタッ
クにブツシュされている規則を表示することにより、還
元競合解析情報として、NTNとTの共通の祖先からN
TNまでの構文木上でのパスを表示する。そして、NT
Nのfirst集合に記号Tが含まれている場合には、
NTNから記号Tへの構文木上でのパスも表示する。N
TNが記号Tでなく、かつNTNのfirst集合にT
が含まれていない場合、ステップ1に戻る。ステップ3
で前記規則がスタックにプツシ−されていない場合には
、ステップ8で現在の記号NTと規則Rをスタックにブ
ツシュしてNTは現在の凡の左辺記号とし、ステップ1
へ戻る。ここで、ステップlでのNTを右辺に持つ規則
を捜す場合に、既に選択された規則は選択しない。Next, with reference to FIG. 2, a description will be given of the main processing flow of the analysis and display method of information regarding the rules of the return state when a return conflict occurs. Let the left-hand side symbol of the above rule be NT,
Let T be the input symbol when a conflict occurs. First, in step 1, a rule with NT on the right side is searched for, and that rule is defined as a rule. If in step 2 NT is the rightmost of the right hand side of the regular ratio, then in step 3 we check whether this rule is already pushed onto the stack, and if so, in step 4 we pop the stack, Return to step 2. If in step 2 NT is not at the rightmost position on the right side of the regular ratio, then in step 5 the symbol immediately to the right of NT on the right side of the regular ratio is set to NTN. In step 6, it is checked whether NTN is the symbol T or whether T is included in the first set of NTN, and when the condition is met, in step 7, the rules pushed onto the stack are displayed and reduced. As competitive analysis information, N from the common ancestor of NTN and T
Displays the path on the syntax tree up to TN. And N.T.
If the symbol T is included in the first set of N,
The path from NTN to symbol T on the syntax tree is also displayed. N
TN is not the symbol T, and T is in the first set of NTN.
If not included, return to step 1. Step 3
If the rule is not pushed onto the stack in step 8, push the current symbol NT and rule R onto the stack, where NT becomes the current general left-hand symbol, and step 1
Return to Here, when searching for a rule having NT on the right side in step l, the already selected rule is not selected.
次に、第3図の入力構文規則に対するフローを第2図を
参照して説明する。第3図の構文規則解析部が発生する
規則は、4行目の’Nl:T4T5“と5行目の“N2
:T4 T5”であシ、競合が発生する入力記号は、T
である。”Nl:’I’4T5”について説明する。第
2図ステップ1のNTは、この場合、N1となる。まず
、ステップlでNTを右辺に持つ規則を捜し、その規則
を几とする。几は、第3図2行目の@Yl:TINI”
となる。ステップ2のチエツクで、この場合、NT(N
l)は、規則ル(”Yl:TlN1’)の右辺の最も右
であるので、ステップ3でスタックにブツシュされてい
るかどうかチエツクし、この場合スタックにプッ丁
シュされていないので、ステップ8でN$、I(をスタ
ックにブツシュし、ステップ1へもどる。このとき、N
Tは、Ylであり、ステップ1で第3図1行目の”x:
yl y2’が几に設定される。ステップ2で、NT(
Yl)は、R(ゝX:YI Y2’)の右辺の最も右で
はないので、ステップ5のNTNは、Y2が設定される
0T(T)がY2のfirst集合に含まれているので
、ステップ7でパスを表示する。表示結果は、第5図の
ようKなる。第5図の1行目は、競合の起きた構文規則
、3行目は、スタックにブツシュされていた規則、5行
目は、表示開始時に選択されていた規則、7行目は、第
2図ステップ7における?TNからTへのパスの表示に
より、表示された規則である。Next, the flow for the input syntax rule of FIG. 3 will be explained with reference to FIG. The rules generated by the syntax rule analyzer in Figure 3 are 'Nl:T4T5' on the fourth line and 'N2:T4T5' on the fifth line.
:T4 T5", the input symbol where the conflict occurs is T
It is. "Nl:'I'4T5" will be explained. NT in step 1 of FIG. 2 becomes N1 in this case. First, in step 1, a rule having NT on the right side is searched for, and that rule is defined as a rule.几 is @Yl:TINI” on the 2nd line of Figure 3.
becomes. In the check in step 2, in this case, NT(N
l) is the rightmost right-hand side of the rule ("Yl:TlN1'), so it is checked in step 3 whether it is pushed to the stack, and in this case it is not pushed to the stack, so it is checked in step 8. Push N$, I( onto the stack and return to step 1. At this time, N
T is Yl, and in step 1, "x:" in the first line of FIG.
yl y2' is set to 几. In step 2, NT(
Since Yl) is not the rightmost of the right-hand side of R(ゝX:YI Y2'), the NTN in step 5 is 7 to display the path. The displayed result is K as shown in FIG. The first line in Figure 5 is the syntax rule that caused the conflict, the third line is the rule that was pushed onto the stack, the fifth line is the rule that was selected at the start of the display, and the seventh line is the second rule. In figure step 7? By displaying the path from TN to T, the rule is displayed.
以上、説明したように本発明の還元競合解析方式を利用
することにより、還元競合発生時にその還元競合に関す
る詳細な情報を表示することが可能となり、5LRfl
)構文解析方式において競合の原因決定及びその解消が
容易になる。As explained above, by using the reduction competition analysis method of the present invention, it becomes possible to display detailed information regarding the reduction competition when a reduction competition occurs, and the 5LRfl
) In the syntax analysis method, it becomes easy to determine the cause of conflict and resolve it.
第1図は本発明の還元競合解析方式の一実施例の構成図
、第2図は還元競合解析及び、還元競合情報表示の処理
フローを示す図、第3図は5LR(0)文法でない入力
構文規則の例を示す図、第4図fl) 、 +2)は第
3図の構文規則において還元競合を発生する構文木の例
を示す図、第5図は第6図2行目の構文規則’Nl:T
4’l”5’の還元状態の解析情報表示の例を示す図、
第6図は第3図のような構文規則が入力されたときの従
来方式による還元競合情報の出力例を示す図である。
1は構文規則解析部、2は競合認識部、3は還元競合解
析部である。
代理人 弁理士 内 原 晋
第1図
BNF形式構文規則
還元競合情報
第3図
X:Yj Y2
YI : LI N+
I T1 N2
Y2:TI2
N+ :T4 T5
N2ニア4下5
第4区
第5図
NI+TA丁5
YI TI N1
↓
X:YI Y2
番
Y2:TI2
第6図
reducc/reduc& C0nfliCt OI
L TN1゛N1T5
N2:N4゛5
(2)×
/ \Figure 1 is a block diagram of an embodiment of the reduction conflict analysis method of the present invention, Figure 2 is a diagram showing the processing flow of reduction conflict analysis and reduction conflict information display, and Figure 3 is an input that is not a 5LR (0) grammar. Figures showing examples of syntactic rules. Figure 4 fl) and +2) are diagrams showing examples of syntax trees that cause reductive conflicts in the syntax rules of Figure 3. Figure 5 shows the syntax rules in line 2 of Figure 6. 'Nl:T
A diagram showing an example of analysis information display of the reduction state of 4'l"5',
FIG. 6 is a diagram showing an example of the output of reduction competition information according to the conventional method when the syntax rule as shown in FIG. 3 is input. 1 is a syntax rule analysis section, 2 is a conflict recognition section, and 3 is a reduction conflict analysis section. Agent Patent Attorney Susumu Uchihara Figure 1 BNF Format Syntax Rules Reduction Competitive Information Figure 3 D5 YI TI N1 ↓ X: YI Y2 No. Y2: TI2 Figure 6 reduce/reduc & C0nfliCt OI
L TN1゛N1T5 N2:N4゛5 (2) × / \
Claims (1)
規則に基づくSLR(1)構文解析を行うデータ構造解
析方式において、前記構文規則がSLR(1)文法でな
い場合の還元競合の発生により非終端記号とそのフォロ
ー(follow)集合に含まれる終端記号が与えられ
たときに、構文木上で前記非終端記号と前記終端記号の
共通の祖先からのパスを検索し、還元競合が発生する構
文構造の例を表示する事を特徴とする還元競合の解析方
式。In a data structure analysis method that takes a syntax rule given in BNF format as input and performs SLR (1) syntax analysis based on the syntax rule, non-terminal symbols are An example of a syntactic structure in which, when a terminal symbol included in the non-terminal symbol and its follow set is given, a path from the common ancestor of the non-terminal symbol and the terminal symbol is searched on the syntax tree, and a reduction conflict occurs. A reduction competition analysis method characterized by displaying the following.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1196288A JPH01187635A (en) | 1988-01-21 | 1988-01-21 | Analysis system for reduction contention |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1196288A JPH01187635A (en) | 1988-01-21 | 1988-01-21 | Analysis system for reduction contention |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01187635A true JPH01187635A (en) | 1989-07-27 |
Family
ID=11792242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1196288A Pending JPH01187635A (en) | 1988-01-21 | 1988-01-21 | Analysis system for reduction contention |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01187635A (en) |
-
1988
- 1988-01-21 JP JP1196288A patent/JPH01187635A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07219758A (en) | Specification generation method | |
JPH01187635A (en) | Analysis system for reduction contention | |
JPH06231224A (en) | Device and method for generating operation guidance | |
JPS61204741A (en) | Compressing method for source program | |
JPH01309179A (en) | Natural language analyzing system | |
CA2281396A1 (en) | Method and apparatus for storing data as liquid information | |
JP2908184B2 (en) | Text file editing method and apparatus | |
JPH05282360A (en) | Multi-language input device | |
JP3003459B2 (en) | Program creation support device | |
JPH0475550B2 (en) | ||
JPH04237365A (en) | Difference detecting system and automatic editing system for text processor | |
JPS63208167A (en) | Handling system for unregistered word in natural word analysis | |
JP3216725B2 (en) | Sentence structure analyzer | |
JPH01119864A (en) | Timing chart input device | |
JPH05113817A (en) | Numerical controller | |
JPH03201058A (en) | Japanese sentence processor | |
JPH06231001A (en) | Symbol name input device | |
JP3450409B2 (en) | Voice synthesis device and voice synthesis method | |
Jones et al. | The L parsing algorithm | |
JPH0497426A (en) | List output system for language processing program | |
JPH05189242A (en) | Automatic generation method for parser | |
JPH08101771A (en) | General purpose check system for source program | |
Jones et al. | The L а Parsing Algorithm | |
JPH0443308B2 (en) | ||
JPH05210448A (en) | Code input system for on-line program |