JPH03152626A - パターンマッチング処理方式 - Google Patents

パターンマッチング処理方式

Info

Publication number
JPH03152626A
JPH03152626A JP29194789A JP29194789A JPH03152626A JP H03152626 A JPH03152626 A JP H03152626A JP 29194789 A JP29194789 A JP 29194789A JP 29194789 A JP29194789 A JP 29194789A JP H03152626 A JPH03152626 A JP H03152626A
Authority
JP
Japan
Prior art keywords
parser
syntax
definition
data
substitution
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
Application number
JP29194789A
Other languages
English (en)
Inventor
Kaoru Yokota
横田 かおる
Kyoko Ohashi
恭子 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP29194789A priority Critical patent/JPH03152626A/ja
Publication of JPH03152626A publication Critical patent/JPH03152626A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概 要〕 文字列で表される式等のパターンマツチング処理に関し
、 任意の構文規則と代入条件とを定義することにより、定
義に従う2文字列のパターンマツチングを、代入条件の
チエツクを含めて実行するパターンマツチング処理方式
を目的とし、 パーザ生成部とパターンマツチャとを有し、該パーザ生
成部は、所与の構文定義に従って、所定のパーザを生成
し、該パーザは、文字列を解析して、該文字列の構文を
表す所定の構造データに変換し、該パターンマツチャは
、該パーザが変換した2組の該構造データについて、該
両構造データ上で所定の対応をなす各要素間を比較し、
すべての該要素間について、両該要素が同一であるが、
又は両該要素が所与の代入条件定義に従って代入可能で
あることにより、該両構造データのマツチングを判定す
るように構成する。
〔産業上の利用分野〕
本発明は、文字列で表される式等のパターンマツチング
、特に代入条件チエツクを伴うパターンマツチング処理
方式に関する。
〔従来の技術と発明が解決しようとする課題〕プログラ
ムの実行、プロダクションシステム、或いは項書き換え
システム等の計算機の処理において、所要の構文規則に
基づく文字列からなる式や項同志の構文上の同一性を判
別する、いわゆるパターンマツチングが必要になる。
このようなパターンマツチングを実行するパターンマツ
チャは、所定の構文規則に従って入力文字列を構文解析
することにより、文字列の構文を決定することが必要な
ために、各構文規則ごとに設けられる。
しかし、利用者が個別に構文規則を定義できるシステム
の場合には、それらの構文規則に対応できる汎用パター
ンマツチャが望まれる。
又、通常パターンマツチングと共に、変数とその変数に
代入される対象の型との対応条件である代入条件を制限
したい場合があるが、従来そのような代入条件のチエツ
クは、パターンマツチングとは別に処理しなければなら
ない。
本発明は、前記のような従来の問題を解決して、任意の
構文規則と代入条件とを定義することにより、定義に従
う2文字列のパターンマツチングを、代入条件のチエツ
クを含めて実行するパターンマツチング処理方式を目的
とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
図はパターンマツチング処理方式の構成であって、パー
ザ生成部3とパターンマツチャ5とを有し、パーザ生成
部3は、所与の構文定義1に従って、所定のパーザ4を
生成し、パーザ4は、文字列6を解析して、文字列6の
構文を表す所定の構造データフに変換し、パターンマツ
チャ5は、パーザ4が変換した2組の構造データフにつ
いて、両構造データ7上で所定の対応をなす各要素間を
比較し、すべての該要素間について、両該要素が同一で
あるか、又は両該要素が所与の代入条件定義2に従って
代入可能であることにより、両構造データフのマツチン
グを判定する。
〔作 用〕
この処理方式により、所要の構文規則と代入条件の定義
を与えることによってパーザが生成され、パーザは文字
列を所与の構文規則に従って、文字列の構文を表す一定
の仕様の構造データに変換するので、その構造データを
処理対象とするパターンマツチャで、代入条件定義に従
う代入条件のチエツクを含めて、パターンマツチング処
理を行うようにすることにより、利用者が個別に与える
構文規則と代入条件の定義に対して、個別のパターンマ
ツチャを作らないでも、自動的にパターンマツチングに
応じ、且つ同時に代入条件をチエツクすることができる
〔実施例〕
第1図において例示するように、パーザ生成部3は例え
ば構文変換部10及びパーザ組立部11からなり、与え
られる構文定義lを構文変換部lOが所定の構成の構造
データに対応した形式に変換し、パーザ組立部11は変
換結果の構文定義12に従って文字列6を構文解析結果
の解析木を表す構造データ7に変換するようにパーザ4
を構成する。
第2図(a)は構文定義1の一例であって、各行は矢印
の右辺の記号列を、左辺に示す記号で表される構文要素
とすることを定義する。なお、図において右辺の、引用
符で囲まれる記号は終端記号を示し、「1」は「又は」
を示す。
構文変換部10はこのような構文定義1を、例えば第2
図(b)に示すような形式に変換して、非終端記号に引
数を付加した形式によって、 構文要素名(解析した文字列の構成要素)の形で、木構
造を表現する構造データに対応するようにする。なお、
図で大括弧([と])は、括弧で囲まれる部分が、「、
」でつながれた記号列からなるリストであることを示す
パーザ組立部11は、このように変換された構文定義1
2に基づいて、文字列を解析して第2図(b)の右辺に
一致する構成要素を、左辺のように書き換える処理を、
書き換えができなくなるまで繰り返すようにパーザ4を
構成する。その結果パーザ4は、例えば第4図に示すよ
うに、白抜き矢印の左辺に例示する文字列を解析して、
右辺に示すような構造データに変換するように構成され
る。
次にパターンマツチャ5は、パーザ4が出力する2文字
列の解析結果の構造データを、代入条件定義2を参照し
ながら比較して、パターンマツチングを実行する。
第5図は代入条件定義の一例であって、図の例はr m
eta−formulaにはbasic−formul
aのみが代入可能である」ことを表す例である。
パターンマツチャ5は、第4図の例の右辺のような2構
造データを、例えば左から調べて両構造データの対応す
る構文要素が一敗するか、又一致しない場合は代入条件
定義2で定義された条件を満足するか判別し、何れかが
満足されれば、この処理を進めてすべて満足すれば、こ
の両構造データのマツチングが得られたと判別する。パ
ターンマツチャは以上のマツチング状況と共に、マツチ
ングした場合には代入関係を示す代入リストを処理結果
として出力する。
第3図は、パターンマツチャ5の処理の流れの一例を示
す図である。処理対象の両構造データの一方を構造デー
タ■、他方を■として、データの要素を左から順次処理
するものとし、先ず処理ステップ20で構造データ■の
先頭の要素を見て、データがリストか否か識別する。
リストの場合には処理ステップ21で、そのリストの要
素を先頭要素から順次処理するものとして、各要素につ
いては処理ステップ20からの処理を再帰的に実行する
リストでない場合、即ち処理対象の部分が構文要素名(
−−−・−) の場合には、処理ステップ22で構造データ■と■の対
応する構文要素名を比較し、両構文要素名が等しければ
処理ステップ23で構造データ■の構文要素名に続く括
弧内が終端記号か識別し、終端記号でなければ処理ステ
ップ24で括弧内のデータについて、処理ステップ20
からの処理を再帰的に実行する。
又、括弧内が終端記号であれば、処理ステップ25で、
構造データ■も同一の終端記号か識別し、同一終端記号
でなければマツチング失敗として終了する。
処理ステップ22で両構文要素名が等しくない場合には
、処理ステップ26で両構文要素の組合わせが代入条件
定義2の代入条件を満足するか識別する。その結果代入
不可と判定した場合にはマツチング失敗として処理を終
わる。
代入可能と判定した場合には処理ステップ27でこの組
合わせについて代入リストに所定の代入関係を示す項を
追加する。
以上の結果、マツチング失敗にならない場合には処理ス
テップ28で、構造データ■の全要素を処理したか識別
して、未処理があれば処理対象を次の要素に進めて処理
ステップ20に戻る。処理済みなら、処理ステップ29
で構造データ■が処理済みか識別し、■も処理済みなら
マツチング成功、■に未処理があればマツチング失敗と
して処理を終わる。
第6図は前記例の構文定義及び代入条件定義がある場合
に、(a)は文字列[A→BJと「p−+q」、(b)
は「〜A」と「P−+q」について、各側突字列のパタ
ーンマツチングを以上のように処理した状況を説明する
図である、各2文字列から変換された構造データについ
て、図に矢印で対応付けた要素が左から順次比較され、
等しくない場合には代入条件がチエツクされて、(a)
の場合はマツチングに成功するが、(b)の場合は最初
の構文要素名の比較で不一致のために、そこまででマツ
チング失敗となって処理を終了することになる。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、文字列
で表される式等のパターンマツチングMlにおいて、任
意の構文規則と代入条件とを定義することにより、定義
に従う2文字列のパターンマツチングを、代入条件のチ
エツクを含めて実行することができるので、構文規則と
代入条件の定義ごとに、個別のパターンマツチャを作ら
ないでも、自動的にパターンマツチングに対処でき、且
つ同時に代入条件をチエツクすることができるという著
しい効果がある。
5はパターンマツチャ、6は文字列、 7は構造データ、   10は構文変換部、11はパー
ザ組立部、 20〜29は処理ステップ
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、第2図は構文
定義の例を示す図、 第3図は本発明の処理の流れ図、 第4図は構造データの例を示す図、 第5図は代入条件定義の例を示す図、 第6図は処理例の説明図 である。 図において、 l、12は構文定義、  2は代入条件定義、3はパー
ザ生成部、  4はパーザ、 本発明の構成を示すブロック図 第1図 DI 構文定義の例を示す図 第2図 本発明の処理の流れ図 第 3121

Claims (1)

  1. 【特許請求の範囲】 パーザ生成部(3)とパターンマッチャ(5)とを有し
    、該パーザ生成部(3)は、所与の構文定義(1)に従
    って、所定のパーザ(4)を生成し、 該パーザ(4)は、文字列(6)を解析して、該文字列
    の構文を表す所定の構造データ(7)に変換し、該パタ
    ーンマッチャ(5)は、該パーザ(4)が変換した2組
    の該構造データ(7)について、該両構造データ上で所
    定の対応をなす各要素間を比較し、すべての該要素間に
    ついて、両該要素が同一であるか、又は両該要素が所与
    の代入条件定義(2)に従って代入可能であることによ
    り、該両構造データのマッチングを判定するように構成
    されていることを特徴とするパターンマッチング処理方
    式。
JP29194789A 1989-11-09 1989-11-09 パターンマッチング処理方式 Pending JPH03152626A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29194789A JPH03152626A (ja) 1989-11-09 1989-11-09 パターンマッチング処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29194789A JPH03152626A (ja) 1989-11-09 1989-11-09 パターンマッチング処理方式

Publications (1)

Publication Number Publication Date
JPH03152626A true JPH03152626A (ja) 1991-06-28

Family

ID=17775520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29194789A Pending JPH03152626A (ja) 1989-11-09 1989-11-09 パターンマッチング処理方式

Country Status (1)

Country Link
JP (1) JPH03152626A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137922A (ja) * 1994-11-11 1996-05-31 Nec Corp テキストエディタ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137922A (ja) * 1994-11-11 1996-05-31 Nec Corp テキストエディタ

Similar Documents

Publication Publication Date Title
US20130125098A1 (en) Transformation of Computer Programs
US20030097637A1 (en) Schema generation apparatus, data processor, and program for processing in the same data processor
CN113254026A (zh) 低代码开发方法及装置
CN116540986A (zh) 一种基于Web端的文本类编程语言代码编辑器构建方法
US6321347B1 (en) Network testing system and method
RU2115158C1 (ru) Способ и устройство для достоверной оценки семантических признаков в синтаксическом анализе при проходе вперед слева направо
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
US20030009744A1 (en) Source code line counting system and method
CN118963771A (zh) 一种离线表单数据动态校验方法及系统
CN114595464B (zh) 智能合约重入漏洞检测方法、装置、存储介质及相关设备
US20230251859A1 (en) Indexing source code
CN112287012B (zh) 采用Spark SQL模式实现http接口调用方法
CN117454848A (zh) 一种扩展条件块的同步数据流语言转换方法
CN115858907A (zh) 语句处理方法、装置、设备和介质
US6675373B1 (en) Automatic generation of balancing logic for data conversion
CN119149580B (zh) 一种基于集群数据库的sql查询方法及系统
CN119884217B (zh) 多源数据库的数据处理系统及方法
JPH05197560A (ja) プログラミング言語変換装置
JP2833612B2 (ja) サービスプリミティブ生成システム
JP2899316B2 (ja) 呼び出し元のコード系認識処理方式
US20250378206A1 (en) Security protection method for drawing file, apparatus, device, medium, and program product
JPH08286927A (ja) アセンブラ処理方式
CN115469848A (zh) 一种前端实现多文件编译器的方法
CN115167837A (zh) Ca-ccml语言可视化模型的编排规则校验方法
CN116738977A (zh) 用于分析自然语言需求的装置和方法