[go: up one dir, main page]

JP7631667B2 - Information processing device, inspection method, inspection program, and server - Google Patents

Information processing device, inspection method, inspection program, and server Download PDF

Info

Publication number
JP7631667B2
JP7631667B2 JP2020051540A JP2020051540A JP7631667B2 JP 7631667 B2 JP7631667 B2 JP 7631667B2 JP 2020051540 A JP2020051540 A JP 2020051540A JP 2020051540 A JP2020051540 A JP 2020051540A JP 7631667 B2 JP7631667 B2 JP 7631667B2
Authority
JP
Japan
Prior art keywords
line
program
program code
syntax
input
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.)
Active
Application number
JP2020051540A
Other languages
Japanese (ja)
Other versions
JP2021149843A (en
Inventor
早紀 田代
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2020051540A priority Critical patent/JP7631667B2/en
Publication of JP2021149843A publication Critical patent/JP2021149843A/en
Application granted granted Critical
Publication of JP7631667B2 publication Critical patent/JP7631667B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、検査方法、検査プログラム、およびサーバに関する。 The present invention relates to an information processing device, an inspection method, an inspection program, and a server.

従来、プログラムの開発を支援するために、コーディングされたプログラムの構文を検査し、構文にエラーがあれば報知する構文検査プログラムが知られている。構文検査プログラムは、例えば、プログラム言語に応じて用意されており、代表的な構文検査プログラムとしてインタプリタ、コンパイラなどがある。例えば、インタプリタは、プログラムの実行指示が入力されると、実行対象のプログラムの構文を検査する。インタプリタは、構文検査の結果、構文エラーが検出されなければ、次に実行エラーの検査を行い、実行エラーも検出されなければプログラムを実行し、実行結果を出力する。 Conventionally, syntax checking programs are known that check the syntax of a coded program and notify the user of any errors in the syntax in order to support program development. Syntax checking programs are prepared, for example, according to the programming language, and representative syntax checking programs include interpreters and compilers. For example, when an instruction to execute a program is input, an interpreter checks the syntax of the program to be executed. If no syntax errors are detected as a result of the syntax check, the interpreter then checks for execution errors, and if no execution errors are detected, it executes the program and outputs the execution results.

これに関し、プログラムの構文上の誤りを検査することに関連する技術が知られている(例えば、特許文献1)。 In this regard, there is known technology related to checking for syntactic errors in programs (for example, Patent Document 1).

特開平3-288238号公報Japanese Patent Application Publication No. 3-288238

ところで、構文エラーを検査するタイミングとしては、必ずしも、ユーザがプログラムの実行指示を入力した場合に限られる必要はないと考えられる。しかしながら、ユーザにとって好ましいタイミングで構文の検査を実行することのできる技術はなかった。 The timing of syntax error checking does not necessarily have to be limited to when the user inputs an instruction to run a program. However, there was no technology that could perform syntax checking at a time that was convenient for the user.

1つの側面では、本発明は、ユーザにとって好ましいタイミングで構文の検査を実行することを目的とする。 In one aspect, the present invention aims to perform syntax checking at a time that is convenient for the user.

本発明の一つの態様の一実施形態に係る情報処理装置は、表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付部と、前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査部と、を含み、前記検査部は、前記ある行のプログラムコードが第1の条件を満たす文字列を含む場合、前記ある行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードを前記ある行のプログラムコードに追加してから、前記構文検査を実行する第1制御、または、前記ある行のプログラムコードが第2の条件を満たす文字列を含む場合、前記ある行のプログラムコードを編集してから、前記構文検査を実行する第2制御、の少なくとも何れか一方を実行する
また、本発明の一つの態様の一実施形態に係る情報処理装置は、表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付部と、前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査部と、を含み、前記プログラムの編集を受け付ける編集モードと、前記プログラムを実行する実行モードとを含む動作モードで動作する情報処理装置であって、前記検査部は、前記編集モードでの動作中に、前記注目行変更操作が前記受付部に入力された場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行し、前記構文検査でエラーが検出された場合、前記編集モードで動作したまま、前記ある行に記述されたプログラムコードの編集を許容し、前記ある行に記述された前記プログラムコードが編集されてから前記受付部に前記注目行変更操作が再入力された場合、前記ある行に記述された編集後の前記プログラムコードを対象とする前記構文検査を再度実行する。
An information processing device according to one embodiment of one aspect of the present invention includes a reception unit that receives input for an operation to edit a program displayed on a display screen, and an inspection unit that, when the reception unit receives input for a focus line change operation to change a focus line from a certain line in the program to another line, performs a syntax check to check for syntax errors on the program code written in the certain line, wherein the inspection unit executes at least one of a first control in which, when the program code of the certain line includes a string that satisfies a first condition, program code of a line that satisfies a predetermined condition and is located before or after the program code of the certain line is added to the program code of the certain line, and then performs the syntax check, or a second control in which, when the program code of the certain line includes a string that satisfies a second condition, the program code of the certain line is edited and then performs the syntax check .
In addition, an information processing device according to one embodiment of one aspect of the present invention includes a reception unit that receives input of an operation for editing a program displayed on a display screen, and an inspection unit that, when the reception unit receives input of a focus line change operation that changes a focus line from a certain line in the program to another line, performs a syntax check to check for syntax errors on the program code written in the certain line, and operates in an operating mode including an edit mode in which editing of the program is accepted, and an execution mode in which the program is executed, wherein, when the focus line change operation is input to the reception unit while operating in the edit mode, the inspection unit performs a syntax check on the program code written in the certain line, and if an error is detected in the syntax check, the inspection unit allows editing of the program code written in the certain line while still operating in the edit mode, and when the focus line change operation is re-input to the reception unit after the program code written in the certain line is edited, it re-executes the syntax check on the edited program code written in the certain line.

ユーザにとって好ましいタイミングで構文の検査を実行することができる。 Syntax checking can be performed at a time that is convenient for the user.

実施形態に係る情報処理装置の一例を示す図である。FIG. 1 is a diagram illustrating an example of an information processing apparatus according to an embodiment. 実施形態に係る情報処理装置のブロック構成を例示する図である。FIG. 1 is a diagram illustrating a block configuration of an information processing device according to an embodiment. 実施形態に係る情報処理装置が動作する編集モードおよび実行モードの例を説明する図である。3A to 3C are diagrams illustrating examples of an edit mode and an execution mode in which the information processing device according to the embodiment operates. 実施形態に係る構文検査処理の動作フローを例示する図である。11 is a diagram illustrating an example of an operational flow of a syntax check process according to the embodiment. FIG. 実施形態に係るエラー表示を含む表示画面を例示する図である。FIG. 13 is a diagram illustrating a display screen including an error display according to the embodiment. 実施形態に係る情報処理装置を実現するためのコンピュータのハードウェア構成を例示する図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a computer for implementing the information processing device according to the embodiment.

以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。 Several embodiments of the present invention will be described in detail below with reference to the drawings. Note that the same reference numerals are used to designate corresponding elements in multiple drawings.

図1は、実施形態に係る情報処理装置100の一例を示す図である。図1では、関数電卓が情報処理装置100として例示されている。図1の例では情報処理装置100は、ファンクションキー(例えば、F1~F6)、関数キー、数字キー、四則演算キー、その他の機能を有する各種のキー101を含む。また、キー101は、例えば、カーソルで示される入力位置や、入力対象の行などの注目行を移動させるための移動キー102と、電卓による演算の実行を指示するためのEXEキー103とを含む。なお、情報処理装置100は、例えば、プログラムの作成および編集の操作入力を受け付ける編集モードおよびプログラムを実行するための実行モードで動作してよい。EXEキー103は、例えば、編集モードにおいて改行コードを入力するキーとして用いられてよい。 FIG. 1 is a diagram showing an example of an information processing device 100 according to an embodiment. In FIG. 1, a scientific calculator is exemplified as the information processing device 100. In the example of FIG. 1, the information processing device 100 includes various keys 101 having function keys (e.g., F1 to F6), function keys, numeric keys, arithmetic keys, and other functions. The keys 101 also include, for example, a movement key 102 for moving an input position indicated by a cursor or a line of interest such as a line to be input, and an EXE key 103 for instructing the calculator to perform a calculation. Note that the information processing device 100 may operate, for example, in an edit mode that accepts operation inputs for creating and editing a program, and an execution mode for executing a program. The EXE key 103 may be used, for example, as a key for inputting a line feed code in the edit mode.

表示画面105は、文字や画像を表示する画面であってよく、情報処理装置100は表示画面105にプログラムの編集画面や実行画面を表示してよい。 The display screen 105 may be a screen that displays characters and images, and the information processing device 100 may display a program editing screen or execution screen on the display screen 105.

なお、情報処理装置100は、図1に例示した関数電卓に限定されるものではない。情報処理装置100は、例えば、パーソナルコンピュータ(PC)、モバイルPC、タブレット端末、スマートフォン、携帯電話機、サーバなどのプログラムの編集機能および実行機能などを備えるその他の装置であってもよい。 The information processing device 100 is not limited to the scientific calculator illustrated in FIG. 1. The information processing device 100 may be other devices that have program editing and execution functions, such as a personal computer (PC), a mobile PC, a tablet terminal, a smartphone, a mobile phone, or a server.

図2は、実施形態に係る情報処理装置100のブロック構成を例示する図である。情報処理装置100は、例えば、制御部201、記憶部202、表示部203、および入力部204を含む。制御部201は、例えば、受付部211および検査部212などを含み、またその他の機能部を含んでもよい。記憶部202は、例えば、構文検査プログラム、および後述する動作フローの手順を記述したプログラムなどの情報を記憶している。表示部203は、例えば、ディスプレイなどの情報を表示する装置である。表示部203は、例えば、制御部201の指示に従って表示画面105に情報を表示する。入力部204は、例えば、ユーザからの入力を受け付ける装置である。入力部204は、一例では、キー101であってよく、また、タッチパネルなどのその他の入力装置であってもよい。これらの各部の詳細および記憶部202に格納されている情報の詳細については後述する。 2 is a diagram illustrating a block configuration of the information processing device 100 according to the embodiment. The information processing device 100 includes, for example, a control unit 201, a storage unit 202, a display unit 203, and an input unit 204. The control unit 201 includes, for example, a reception unit 211 and an inspection unit 212, and may also include other functional units. The storage unit 202 stores information such as a syntax inspection program and a program describing the procedure of an operation flow described below. The display unit 203 is, for example, a device that displays information such as a display. The display unit 203 displays information on the display screen 105 according to, for example, an instruction from the control unit 201. The input unit 204 is, for example, a device that accepts input from a user. The input unit 204 may be, for example, the keys 101, or may be another input device such as a touch panel. Details of each of these units and details of the information stored in the storage unit 202 will be described later.

図3は、実施形態に係る情報処理装置100が動作する編集モードおよび実行モードの例を説明する図である。図3に示すように、情報処理装置100は、プログラミングのための動作モードとして、プログラムの編集を受け付ける編集モードと、プログラムを実行する実行モードとを含んでいる。 Figure 3 is a diagram illustrating examples of edit modes and execution modes in which the information processing device 100 according to the embodiment operates. As shown in Figure 3, the information processing device 100 includes, as operation modes for programming, an edit mode in which editing of a program is accepted, and an execution mode in which a program is executed.

編集モードでは、制御部201は、プログラムを編集するための操作の入力を受け付け、ユーザは例えば情報処理装置100のキー101を操作することで、プログラムを入力することができる(図3(1))。また、編集モードにおいて作成されたプログラムに対して実行指示が入力されると、モードの切り替えが行われ実行モードへと遷移する(図3(2))。 In the edit mode, the control unit 201 accepts input of operations for editing the program, and the user can input the program, for example, by operating the keys 101 of the information processing device 100 (FIG. 3(1)). Also, when an execution instruction is input for a program created in the edit mode, the mode is switched and the mode transitions to the execution mode (FIG. 3(2)).

実行モードでは、制御部201は、まずプログラムの構文検査を実行し、プログラムに構文エラー(シンタックスエラー)が存在しないかをチェックする(図3(3))。また、プログラムに構文エラーが含まれていない場合、制御部201は、次にプログラムの実行エラーを検査する(図3(4))。 In the execution mode, the control unit 201 first performs a syntax check on the program to check whether the program contains any syntax errors (Figure 3 (3)). If the program does not contain any syntax errors, the control unit 201 then checks the program for execution errors (Figure 3 (4)).

そして、構文検査および実行エラーの検査の結果、エラーが含まれている場合には、制御部201は、エラーの内容を表示画面105に表示させる(図3(5))。一方、プログラムにエラーが含まれていない場合には、制御部201は、プログラムの実行結果を表示画面105に表示させる(図3(5))。そして、実行モードにおいて編集モードへの切り替え指示が入力されると(図3(6))、制御部201は、モードを編集モードへと遷移させる。 If the syntax check and execution error check reveal that an error is present, the control unit 201 displays the contents of the error on the display screen 105 (FIG. 3 (5)). On the other hand, if the program does not contain any errors, the control unit 201 displays the results of the program's execution on the display screen 105 (FIG. 3 (5)). Then, when an instruction to switch to edit mode is input in execution mode (FIG. 3 (6)), the control unit 201 transitions the mode to edit mode.

この様に、情報処理装置100において編集モードと実行モードとを切り替えることで、ユーザはプログラムを作成したり、その実行結果を確かめたりすることができる。 In this way, by switching between edit mode and execution mode on the information processing device 100, the user can create a program and check the results of its execution.

また更に、実施形態では制御部201は、編集モードにおいても構文の検査を行う。例えば、ユーザがプログラムを作成中に、プログラム内のある行から別の行に注目行を変更する操作の入力を行ったとする。この場合に、制御部201は、ある行から別の行に注目行を変更する注目行変更操作の入力を検出し(図3(7))、編集モードにおいて構文の検査を実行してよい(図3(8))。そして、構文エラーが検出された場合には、制御部201は、構文エラーの内容を表示画面105に表示する(図3(9))。 Furthermore, in an embodiment, the control unit 201 also checks the syntax in edit mode. For example, assume that while a user is creating a program, the user inputs an operation to change the line of focus from one line in the program to another line. In this case, the control unit 201 may detect the input of the line of focus change operation to change the line of focus from one line to another line (FIG. 3 (7)), and perform syntax check in edit mode (FIG. 3 (8)). Then, if a syntax error is detected, the control unit 201 displays the content of the syntax error on the display screen 105 (FIG. 3 (9)).

なお、プログラム内のある行から別の行に注目行を変更する注目行変更操作は、一例では、カーソルを別の行に移動させるカーソル移動操作であってよい。以下では、プログラム内のある行から別の行に注目行を変更する注目行変更操作として、カーソルを別の行に移動させる操作を例に説明を行う。ここで、カーソルを別の行に移動させる操作は、例えば、カーソルの位置を上の行に移動させる「↑」、または下の行に移動させる「↓」のなどの移動キー102による移動を指示する操作を含んでよい。また、カーソルを別の行に移動させる操作は、例えば、改行コードを入力する操作を含んでよい。更に、カーソルを別の行に移動させる操作は、例えば、カーソルを先頭や末尾の行に移動させるショートカットキーの入力操作や、文字列の検索などによりカーソルを移動させる操作などを含んでよい。この場合に、制御部201は、行移動の操作の入力を検出し(図3(7))、編集モードにおいて構文の検査を実行してよい(図3(8))。そして、構文エラーが検出された場合には、制御部201は、構文エラーの内容を表示画面105に表示する(図3(9))。 In addition, the line change operation for changing the line of interest from one line in a program to another line may be, for example, a cursor movement operation for moving the cursor to another line. In the following, an operation for moving the cursor to another line will be described as an example of a line change operation for changing the line of interest from one line in a program to another line. Here, the operation for moving the cursor to another line may include, for example, an operation for instructing movement by the movement key 102, such as "↑" for moving the position of the cursor to an upper line, or "↓" for moving the position of the cursor to a lower line. In addition, the operation for moving the cursor to another line may include, for example, an operation for inputting a line feed code. Furthermore, the operation for moving the cursor to another line may include, for example, an input operation of a shortcut key for moving the cursor to the first or last line, an operation for moving the cursor by searching for a character string, etc. In this case, the control unit 201 may detect the input of the line movement operation (FIG. 3 (7)) and perform a syntax check in the edit mode (FIG. 3 (8)). Then, if a syntax error is detected, the control unit 201 displays the contents of the syntax error on the display screen 105 (FIG. 3 (9)).

なお、この場合の構文の検査の対象は、一例では、カーソルを別の行に移動させる操作が入力された際のカーソルの移動元の行であってよい。例えば、ユーザがプログラムコードの入力を行った場合、カーソルを別の行に移動させる操作を入力するのは、ユーザがその行のプログラムコードの入力が完了したと判断したタイミングであることが多い。そのため、上述のように、カーソルを別の行に移動させる操作の入力を検出し、そのタイミングでカーソルの移動元の行の構文を検査することで、ユーザが入力を完了したばかりの行に対して構文の検査を実行することができる。そして、構文エラーが存在する場合には構文エラーを報知することができる。そのため、ユーザは自らの入力内容と、構文エラーの結果とを対応づけて認識し易く、プログラミングの学習効果の高いタイミングで、自身のプログラミングのミスを認識することができる。また、この様にカーソルの移動元の行のプログラムコードを抽出して構文検査を実行することで、構文検査の実行にかかる処理負荷を低減しつつも、入力が行われた行を効率的に検査することができる。 In this case, the target of syntax checking may be, for example, the line from which the cursor was moved when an operation to move the cursor to another line was input. For example, when a user inputs program code, the operation to move the cursor to another line is often input at the timing when the user determines that input of the program code for that line is complete. Therefore, as described above, by detecting the input of the operation to move the cursor to another line and checking the syntax of the line from which the cursor was moved at that timing, syntax checking can be performed on the line that the user has just completed inputting. If a syntax error exists, the syntax error can be notified. Therefore, the user can easily recognize the correspondence between the contents of his/her input and the result of the syntax error, and can recognize his/her programming mistake at a timing when the learning effect of programming is high. In addition, by extracting the program code of the line from which the cursor was moved and performing syntax checking in this way, the processing load required for executing syntax checking can be reduced while efficiently checking the line where input was performed.

なお、構文検査を実行する別のタイミングの例として、所定時間、文字入力等の操作が行われないと自動的に構文検査を実行することも考えられる。しかしながら、このようなタイミングで構文検査を実行すると、ユーザが1行のプログラムコードの入力を完了していないタイミングでも時間が来れば構文検査を実行してしまう。この場合、1行の入力がまだ完了していないので、構文エラーが報知されてしまうが、そのようなエラーが発生して当然とユーザが認識しているような状況でエラーを報知してもユーザにとって学習効果は望めない。更には、そうしたエラーが発生して当然の状況でのエラー報知を頻繁に繰り返すと、本来ユーザが認識すべきエラー報知に対する関心も薄れてしまい、学習効果の低下を招いてしまう恐れもある。更には、時間が経過すれば構文検査を実行することになるため、必要以上に構文検査を実行することになり、処理負荷を不要に増大させてしまうことにもなる。 As another example of the timing for executing a syntax check, it is possible to automatically execute a syntax check if no operations such as character input are performed for a certain time. However, if a syntax check is executed at such a timing, the syntax check will be executed when the time comes even if the user has not yet completed inputting one line of program code. In this case, since the input of one line has not yet been completed, a syntax error will be notified, but if an error is notified in a situation where the user recognizes that such an error should occur, there is no hope of learning from the user. Furthermore, if an error notification is frequently repeated in a situation where such an error should occur, the user will lose interest in the error notification that he or she should recognize, and there is a risk that this will lead to a decrease in the learning effect. Furthermore, since a syntax check will be executed after a certain time has passed, a syntax check will be executed more than necessary, which will unnecessarily increase the processing load.

また、構文検査を実行する更に別のタイミングとして、例えば、構文検査を実行するためのショートカットキーなどを設定しておき、ユーザが所望のタイミングで構文検査を実行することも考えられる。しかしながら、このようにユーザに構文検査の実行を任せてしまうと、慣れてくるとユーザが構文検査の実行を怠ることも起こり得る。そのため、ユーザにとって好ましいタイミングで構文検査を実行することができる更なる技術の提供が望まれている。 As another alternative timing for executing syntax check, for example, a shortcut key for executing syntax check can be set, allowing the user to execute syntax check at a time of their choice. However, if execution of syntax check is left to the user in this way, it is possible that the user may become accustomed to it and neglect to execute syntax check. For this reason, there is a need for further technology that allows syntax check to be executed at a time preferred by the user.

上述したように、実施形態では、カーソルを別の行に移動させる所定の操作が入力された場合に、構文検査を実行する。そのため、ユーザが構文検査の実行を意識しなくても学習効果の高い適切なタイミングで構文検査を実行することができる。また、実施形態によれば、例えば、ユーザの1行のプログラムコードの入力を完了し、行移動操作を入力したタイミングなどで構文検査が実行される。そのため、自動的に構文の検査を実行するような場合と比較して、処理負荷を抑えつつ、適切な回数で効率的に構文検査を実行することができる。例えば、関数電卓などの情報処理装置100では、処理能力が非力であることもある。そのような場合にも、処理負荷を抑えて適切なタイミングで構文検査を実行することができ、ユーザは処理遅延等を意識せずにプログラミングを行い、構文検査の結果の報知を受けることができる。 As described above, in the embodiment, a syntax check is performed when a predetermined operation to move the cursor to another line is input. Therefore, even if the user is not aware of the execution of the syntax check, the syntax check can be performed at an appropriate timing that is effective for learning. Also, according to the embodiment, for example, the syntax check is performed when the user completes input of one line of program code and inputs a line movement operation. Therefore, compared to the case where the syntax check is automatically performed, the syntax check can be performed efficiently at an appropriate number of times while suppressing the processing load. For example, the information processing device 100 such as a scientific calculator may have a low processing capacity. Even in such a case, the syntax check can be performed at an appropriate timing while suppressing the processing load, and the user can program without being aware of processing delays, etc., and be notified of the results of the syntax check.

なお、構文検査は、例えば、制御部201が、構文検査の対象とする領域のプログラムコードを構文検査プログラムにかけることで実行されてよい。構文検査プログラムは、例えば、インタプリタ、コンパイラなどを含んでよい。プログラムの構文は、プログラミング言語に応じて異なり得るため、構文検査プログラムは、プログラミング言語に応じて用意されてよい。以下ではプログラミング言語が、Pythonである場合を例に説明を行うが、実施形態で利用可能なプログラミング言語はPythonに限定されるものではなく、C言語、Perlなどその他の言語を用いる場合にも適用することもできる。 Syntax checking may be performed, for example, by the control unit 201 running the program code of the area to be checked through a syntax checking program. The syntax checking program may include, for example, an interpreter, a compiler, etc. Since the syntax of a program may differ depending on the programming language, a syntax checking program may be prepared according to the programming language. In the following, an example will be described in which the programming language is Python, but the programming language that can be used in the embodiment is not limited to Python, and it can also be applied to cases where other languages such as C and Perl are used.

続いて、実施形態に係るカーソルの行移動操作が入力された場合における構文検査の実行について更に説明する。上述のように、一実施形態ではカーソルの行移動操作が入力された場合、そのカーソルの移動元の行のプログラムコードに構文検査を実行する。この様にカーソルの移動元の行のプログラムコードを抽出して構文検査を実行することで、構文検査の実行にかかる処理負荷を低減しつつも、入力が行われた行を効率的に検査することができる。 Next, the execution of syntax checking when a cursor line movement operation is input according to the embodiment will be further explained. As described above, in one embodiment, when a cursor line movement operation is input, a syntax check is performed on the program code of the line from which the cursor was moved. By extracting the program code of the line from which the cursor was moved and performing a syntax check in this way, the processing load for executing the syntax check can be reduced while efficiently checking the line on which the input was performed.

しかしながら、例えば、プログラムコードの構文検査を実行する場合に、プログラムコードに記述される命令によっては、構文検査プログラムが、その前の行または後の行のプログラムコードを参照することがある。そして、例えば、このように構文の検査において、構文検査プログラムが、複数行にわたるプログラムコードを参照する場合、1行のプログラムコードのみを抽出して構文検査にかけると、プログラムの全体で構文検査を実行すれば構文エラーとならない場合にも、構文エラーと判定されてしまうことがある。 However, for example, when performing a syntax check on program code, depending on the instructions written in the program code, the syntax check program may refer to the previous or following line of program code. And, for example, when a syntax check program refers to multiple lines of program code in a syntax check like this, if only one line of program code is extracted and subjected to syntax checking, it may be determined to be a syntax error even if running a syntax check on the entire program would not result in a syntax error.

そのため、実施形態では制御部201は、カーソルの移動元の行のプログラムコードが、構文検査において複数行にわたるプログラムコードの参照が行われる命令などを示す所定の文字列を含む場合、プログラムコードを加工してから構文検査にかける。なお、文字列とは、例えば、1文字以上の文字および記号、並びに改行コードなどのコードが並んだ構造のデータであってよい。 Therefore, in an embodiment, if the program code on the line from which the cursor is moved contains a specific character string indicating an instruction that references program code across multiple lines in a syntax check, the control unit 201 processes the program code before subjecting it to a syntax check. Note that a character string may be data with a structure in which one or more characters and symbols, as well as codes such as line feed codes, are arranged, for example.

カーソルの移動元の行のプログラムコードに実行される加工の種類としては、例えば、以下が挙げられる。
(1)カーソルの移動元の行より前の行または後の行のプログラムコードを取得して追加
(2)カーソルの移動元の行のプログラムコードを編集
Examples of the types of processing that can be performed on the program code of the line from which the cursor is moved include the following:
(1) Get and add the program code of the line before or after the line from which the cursor is moved. (2) Edit the program code of the line from which the cursor is moved.

以上の編集の種類について、以下にプログラム言語がPythonである場合を例に説明する。 The above types of editing are explained below using Python as an example programming language.

(1)カーソルの移動元の行より前の行または後の行のプログラムコードを取得して追加
カーソルの移動元の行のプログラムコードが、第1の条件を満たす文字列を含む場合、制御部201は、カーソルの移動元の行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードを取得する。そして、制御部201は、取得したプログラムコードを、カーソルの移動元の行のプログラムコードに追加してから、構文検査プログラムに処理させることで構文エラーを検査する。それにより、構文検査プログラムは、前の行または後の行のプログラムコードの情報を参照して構文検査を実行することができ、カーソルの移動元の行のプログラムコードを抽出したことに起因する構文エラーの発生を回避することができる。
(1) Obtaining and adding program code from a line before or after the line from which the cursor is moved If the program code of the line from which the cursor is moved contains a character string that satisfies a first condition, the control unit 201 obtains program code from a line that satisfies a predetermined condition and is located before or after the program code of the line from which the cursor is moved. The control unit 201 then adds the obtained program code to the program code of the line from which the cursor is moved, and then has the syntax check program process it to check for syntax errors. This allows the syntax check program to perform syntax check by referring to information about the program code of the previous or following line, and makes it possible to avoid the occurrence of syntax errors caused by extracting the program code of the line from which the cursor is moved.

なお、第1の条件は、例えば、構文検査の際に前の行または後の行の情報を参照する命令を検出する条件であってよい。例えば、Pythonでは、「else」、「elif」、「break」、「return」および「continue」などの文字列を含む行の構文検査では、前の行のプログラムコードの情報が参照される。この場合、前の行のプログラムコードの情報が無いと、構文エラーと判断されてしまう。そのため、カーソルの移動元の行のプログラムコードが、例えば、「else」、「elif」、「break」、「return」および「continue」などの文字列を含む場合、制御部201は、移動元の行よりも前に位置するプログラムコードのうちから、インデントの数が合致する直近の行までのプログラムコードを取得する。制御部201は、取得したプログラムコードを、カーソルの移動元の行のプログラムコードに追加してから、構文検査プログラムに処理させることで構文エラーを検査してよい。 The first condition may be, for example, a condition for detecting an instruction that refers to information on a previous or subsequent line during syntax checking. For example, in Python, when checking a line that contains character strings such as "else", "elif", "break", "return", and "continue", the information on the program code on the previous line is referenced. In this case, if there is no information on the program code on the previous line, it will be determined to be a syntax error. Therefore, if the program code on the line from which the cursor is moved contains character strings such as "else", "elif", "break", "return", and "continue", the control unit 201 acquires program code from the program code located before the line from which the cursor is moved up to the nearest line with the same number of indents. The control unit 201 may add the acquired program code to the program code on the line from which the cursor is moved, and then have the syntax checking program process it to check for syntax errors.

例えば、カーソルの移動元の行のプログラムコードが「else」を含む場合、制御部201は、「else」のインデントの数と同じ数でインデントされている直近の行を探索し、同じ数でインデントされているif文の「if」などを含む行を特定する。そして、制御部201は、特定した「if」の行から「else」の行までのプログラムコードを構文検査プログラムにかけてよい。 For example, if the program code of the line from which the cursor is moved contains "else," the control unit 201 searches for the nearest line that is indented the same number of times as the number of indents of "else," and identifies a line that contains an "if" of an if statement that is indented the same number of times. The control unit 201 may then run the program code from the identified "if" line to the "else" line through a syntax check program.

なお、ここでは、カーソルのある行より前の行のプログラムコードを取得してカーソルの移動元の行のプログラムコードに追加する場合を例示したが、実施形態はこれに限定されるものではない。例えば、カーソルの移動元の行のプログラムコードが、構文検査においてカーソルの移動元の行よりも後の行のプログラムコードが参照される命令を含むとする。この場合、制御部201は、後の行のプログラムコードを、カーソルの移動元の行のプログラムコードに追加してから、構文検査プログラムに処理させることで構文エラーを検査してよい。この場合、制御部201は、例えば、カーソルの移動元の行の後の行を探索し、探索で見つかったインデントの数が一致している直近の行の1つ前の行までのプログラムコードを取得してカーソルの移動元の行のプログラムコードに追加し、構文検査にかけてよい。それにより、構文検査プログラムは、後の行のプログラムコードの情報を参照して構文検査を実行することができ、カーソルの移動元の行のプログラムコードを抽出したことに起因する構文エラーの発生を回避することができる。 Here, the case where the program code of the line before the line where the cursor is located is obtained and added to the program code of the line from which the cursor is moved is exemplified, but the embodiment is not limited to this. For example, the program code of the line from which the cursor is moved includes an instruction that references the program code of the line after the line from which the cursor is moved in the syntax check. In this case, the control unit 201 may check for syntax errors by adding the program code of the later line to the program code of the line from which the cursor is moved and then having the syntax check program process it. In this case, the control unit 201 may, for example, search for the line after the line from which the cursor is moved, obtain the program code up to the line before the closest line found in the search that has the same number of indents, add it to the program code of the line from which the cursor is moved, and perform syntax check. In this way, the syntax check program can perform syntax check by referring to the information of the program code of the later line, and avoid the occurrence of syntax errors caused by extracting the program code of the line from which the cursor is moved.

(2)カーソルの移動元の行のプログラムコードを編集
カーソルの移動元の行のプログラムコードの編集は、例えば、カーソルの移動元の行のプログラムコードへの文字列の追加、削除、および置換などを含んでよい。
(2) Editing the program code of the line from which the cursor is moved Editing the program code of the line from which the cursor is moved may include, for example, adding, deleting, and replacing character strings in the program code of the line from which the cursor is moved.

例えば、Pythonでは、「if」、「for」、および「def」といった命令を用いて複合文を記述する場合に、同じブロックでは行頭のインデントの数を揃える決まりがある。しかしながら、行頭に空白がある行のみを抽出して構文検査にかけると、構文検査プログラムは、構文エラーと判断してしまう。そのため、実施形態では制御部201は、カーソルの移動元の行のプログラムコードの行頭に空白が含まれる場合、行頭の空白を削除してから、カーソルの移動元の行のプログラムコードを構文検査プログラムにかけてよい。それにより、カーソルの移動元の行のプログラムコードの行頭がインデントされている場合に、カーソルの移動元の行のプログラムコードを抽出したことに起因して構文検査プログラムが構文エラーを検出してしまうことを回避することができる。 For example, in Python, when writing a compound statement using commands such as "if", "for", and "def", it is a rule that the number of indents at the beginning of lines in the same block must be the same. However, if only lines with spaces at the beginning of the lines are extracted and subjected to syntax checking, the syntax checking program will determine that there is a syntax error. Therefore, in an embodiment, if the program code of the line from which the cursor is moved contains spaces at the beginning of the line, the control unit 201 may delete the spaces at the beginning of the line and then subject the program code of the line from which the cursor is moved to the syntax checking program. This makes it possible to avoid the syntax checking program detecting a syntax error due to the extraction of the program code of the line from which the cursor is moved when the beginning of the program code of the line from which the cursor is moved is indented.

なお、上述の(1)で述べたように、インデントの数に基づいて、カーソルの移動元の行よりも前の行または後の行のプログラムコードを取得し、カーソルの移動元の行のプログラムコードに追加する場合、制御部201は、カーソルの移動元の行とインデントの数が一致した追加するプログラムコードのインデントも削除してよい。 As described in (1) above, when program code of a line before or after the line from which the cursor is moved based on the number of indents and is added to the program code of the line from which the cursor is moved, the control unit 201 may also delete indents of the program code to be added that have the same number of indents as the line from which the cursor is moved.

また、上述のように構文検査プログラムが、構文エラーの判定の際に他の行のプログラムコードを参照することがある。この場合に、カーソルの移動元の行のプログラムコードに、参照先として機能する所定の文字列などを追加することで、構文エラーを回避することもできる。例えば、Pythonでは、「if」、「for」、および「def」などの命令を用いて複合文を記述する場合、次の行にブロックが続くときには行末に「:」を記載する決まりがある。そのため、例えば、カーソルの移動元の行のプログラムコードの行末が「:」である場合、構文検査において構文検査プログラムがカーソルの移動元の行のプログラムコードよりも後の行のプログラムコードを参照すると判定することができる。この場合に、実施形態では制御部201は、カーソルの移動元の行のプログラムコードを編集してよい。例えば、制御部201は、カーソルの移動元の行の行末が「:」である場合、「:」の後にブロックの中身として「pass」などを追加することで、構文エラーを回避してよい。それにより、追加した「pass」以外の行内の構文を検査することができる。 As described above, the syntax check program may refer to the program code of another line when determining whether there is a syntax error. In this case, a syntax error can be avoided by adding a specified character string that functions as a reference to the program code of the line from which the cursor is moved. For example, in Python, when describing a compound statement using commands such as "if", "for", and "def", if a block continues on the next line, a ":" must be written at the end of the line. Therefore, for example, if the program code of the line from which the cursor is moved ends with a ":", it can be determined that the syntax check program refers to the program code of the line after the program code of the line from which the cursor is moved in the syntax check. In this case, in the embodiment, the control unit 201 may edit the program code of the line from which the cursor is moved. For example, if the line from which the cursor is moved ends with a ":", the control unit 201 may avoid a syntax error by adding "pass" or the like as the contents of the block after the ":". This makes it possible to check the syntax in the line other than the added "pass".

なお、例えば、「if」、「for」、および「def」の他にも、「else」および「elif」などの場合にも、プログラムコードの行末に「:」が記載されることがある。この場合にも同様に、制御部201は、行末に「pass」を追加することで、構文エラーを回避してよい。また、上述の(1)で述べたように、制御部201は、カーソルの移動元の行よりも後の行のプログラムコードを取得して、カーソルの移動元の行のプログラムコードに追加し、構文エラーを回避してもよい。 Note that, for example, in addition to "if", "for", and "def", "else" and "elif" may also have a ":" at the end of the line of the program code. In this case as well, the control unit 201 may avoid a syntax error by adding "pass" to the end of the line. Also, as described in (1) above, the control unit 201 may obtain the program code of a line after the line from which the cursor is moved and add it to the program code of the line from which the cursor is moved, thereby avoiding a syntax error.

以上で述べたように、実施形態では制御部201は、カーソルの移動元の行のプログラムコードを加工することで、カーソルの移動元の行のプログラムコードを抽出したことに起因する構文エラーを回避してよい。 As described above, in an embodiment, the control unit 201 may process the program code of the line from which the cursor is moved, thereby avoiding syntax errors that may result from extracting the program code of the line from which the cursor is moved.

以下、実施形態に係る構文検査処理の動作フローを説明する。図4は、実施形態に係る構文検査処理の動作フローを例示する図である。例えば、制御部201は、編集モードに遷移すると、図4の動作フローを開始してよい。 The operation flow of the syntax check process according to the embodiment will be described below. FIG. 4 is a diagram illustrating an example of the operation flow of the syntax check process according to the embodiment. For example, when the control unit 201 transitions to the edit mode, the control unit 201 may start the operation flow of FIG. 4.

ステップ401(以降、ステップを“S”と記載し、例えば、S401と表記する)において制御部201は、編集モードで開かれたファイルの全文の構文検査を実行する。例えば、過去に作成されたファイルなどを開いた場合には、編集モードで開かれたファイルに既にプログラムコードが記述されていることがある。このような場合に、制御部201は、開かれたファイルに記述されているプログラムコードの構文エラーを検査してよい。 In step 401 (hereinafter, step will be abbreviated as "S", e.g., S401), the control unit 201 performs a syntax check on the entire file opened in edit mode. For example, when opening a file created in the past, program code may already be written in the file opened in edit mode. In such a case, the control unit 201 may check for syntax errors in the program code written in the opened file.

S402において制御部201は、構文検査プログラムによる検査の結果、検査対象に構文エラーが含まれているか否かを判定する。構文エラーが含まれていない場合(S402がNO)、フローはS404に進む。一方、構文エラーが含まれている場合(S402がYES)、フローはS403に進み、制御部201は、構文エラーの検査結果を表示部203の表示画面105に表示し、ユーザに構文エラーを報知する。例えば、制御部201は、プログラムにおいて構文エラーが最初に見つかった行と、その構文エラーの内容とを表示画面105に表示してよい。また、制御部201は、プログラムにおいて構文エラーが最初に見つかった行にカーソルを移動させてよい。制御部201が、構文エラーの検査結果を表示すると、フローはS404に進む。 In S402, the control unit 201 determines whether the test target contains a syntax error as a result of the test using the syntax check program. If a syntax error is not contained (NO in S402), the flow proceeds to S404. On the other hand, if a syntax error is contained (YES in S402), the flow proceeds to S403, where the control unit 201 displays the results of the syntax error test on the display screen 105 of the display unit 203, and notifies the user of the syntax error. For example, the control unit 201 may display on the display screen 105 the line in the program where the syntax error was first found, and the content of the syntax error. The control unit 201 may also move the cursor to the line in the program where the syntax error was first found. Once the control unit 201 has displayed the results of the syntax error test, the flow proceeds to S404.

S404において制御部201は、ユーザからの入力を受け付ける。例えば、ユーザは、情報処理装置100に備えられたキー101などの入力部204を介して操作を入力し、プログラムの編集を行ってよい。ユーザからの入力を受け付けると、フローはS405に進む。 In S404, the control unit 201 accepts input from the user. For example, the user may input operations via the input unit 204, such as the keys 101 provided on the information processing device 100, to edit the program. When the input from the user is accepted, the flow proceeds to S405.

S405において制御部201は、入力された操作が、カーソルをプログラムの別の行に移動させる所定の行移動の操作であるか否かを判定する。所定の行移動の操作は、例えば、カーソルの位置を上または下に移動させる操作の入力、改行コードの入力、カーソルを先頭行や末尾行に移動させるショートカットキーによる入力、検索による行移動の入力などのうちの少なくとも1つを含んでよい。入力が所定の行移動の操作でない場合(S405がNO)、フローはS415に進む。S415において制御部201は、入力された操作を実行し、その後、フローはS404に戻って処理を繰り返す。一方、入力が所定の行移動の操作である場合(S405がYES)、フローはS406に進む。 In S405, the control unit 201 determines whether the input operation is a predetermined line movement operation that moves the cursor to another line of the program. The predetermined line movement operation may include, for example, at least one of the following: input of an operation to move the cursor position up or down, input of a line feed code, input by a shortcut key that moves the cursor to the first line or the last line, input of line movement by search, etc. If the input is not a predetermined line movement operation (NO in S405), the flow proceeds to S415. In S415, the control unit 201 executes the input operation, and then the flow returns to S404 to repeat the process. On the other hand, if the input is a predetermined line movement operation (YES in S405), the flow proceeds to S406.

S406において制御部201は、所定の行移動の操作が入力された際のカーソルの移動元の行のプログラムコードを取得する。 In S406, the control unit 201 obtains the program code of the line from which the cursor is to be moved when a specified line movement operation is input.

S407では制御部201は、移動元の行のプログラムコードが第1の条件を満たす文字列を含むか否かを判定する。なお、第1の条件は、例えば、構文検査の際に前の行または後の行の情報が参照される命令を検出する条件であってよい。移動元の行のプログラムコードが第1条件を満たす文字列を含まない場合(S407がNO)、フローはS409に進む。一方、移動元の行のプログラムコードが第1条件を満たす文字列を含む場合(S407がYES)、フローはS408に進む。S408において制御部201は、構文検査で参照される前の行または後の行のプログラムコードを、移動元の行のプログラムコードに追加し、フローはS409に進む。 In S407, the control unit 201 determines whether the program code of the source line includes a character string that satisfies a first condition. The first condition may be, for example, a condition for detecting an instruction in which information on a previous or subsequent line is referenced during syntax checking. If the program code of the source line does not include a character string that satisfies the first condition (NO in S407), the flow proceeds to S409. On the other hand, if the program code of the source line includes a character string that satisfies the first condition (YES in S407), the flow proceeds to S408. In S408, the control unit 201 adds the program code of the previous or subsequent line referenced in syntax checking to the program code of the source line, and the flow proceeds to S409.

例えば、プログラム言語がPythonであれば、検査対象の行のプログラムコードが「else」、「elif」、「break」、「return」および「continue」などを含む場合、構文検査において構文検査プログラムは前の行の情報を参照する。一例として、検査対象の行のプログラムコードが「else」や「elif」などを含めば、構文検査において構文検査プログラムは、その「else」や「elif」と対応する「if」が前にあるかなどを検査する。そのため、制御部201は、例えば、検査対象の行のプログラムコードに「else」や「elif」などの文字列が含まれる場合、その「else」や「elif」に付されたインデントの数と一致するインデント数を有する直近の「if」を含む行までのプログラムコードを抽出してよい。同様に、検査対象の行のプログラムコードに、例えば、「break」、「return」および「continue」などの文字列が含まれる場合にも、制御部201は、構文検査において参照される前の行の範囲を、インデントの数や複合文のブロックなどの情報に基づいて特定し、その範囲のプログラムコードを取得してよい。 For example, if the program language is Python, and the program code of the line to be inspected includes "else", "elif", "break", "return", and "continue", the syntax inspection program refers to the information of the previous line in the syntax inspection. As an example, if the program code of the line to be inspected includes "else" or "elif", the syntax inspection program checks whether there is an "if" preceding the "else" or "elif" that corresponds to the "else" or "elif". Therefore, for example, if the program code of the line to be inspected includes a character string such as "else" or "elif", the control unit 201 may extract the program code up to the line containing the most recent "if" that has an indentation number that matches the number of indentations added to the "else" or "elif". Similarly, if the program code of the line to be inspected contains character strings such as "break," "return," and "continue," the control unit 201 may identify the range of previous lines referenced in the syntax inspection based on information such as the number of indents and compound statement blocks, and obtain the program code of that range.

続いて、S409において制御部201は、移動元の行のプログラムコードが、第2の条件を満たす文字列を含むか否かを判定する。なお、第2の条件は、例えば、構文検査の際に行内のプログラムコードに編集が必要になる文字列を検出する条件であってよい。例えば、移動元の行のプログラムコードが、第2の条件を満たす文字列を含まない場合(S409がNO)、フローはS411に進む。一方、例えば、移動元の行のプログラムコードが、第2の条件を満たす文字列を含む場合(S409がYES)、フローはS410に進む。S410において制御部201は、行内の文字列を編集し、フローはS411に進む。 Next, in S409, the control unit 201 determines whether the program code in the source line contains a character string that satisfies a second condition. The second condition may be, for example, a condition for detecting a character string that requires editing in the program code in the line during syntax checking. For example, if the program code in the source line does not contain a character string that satisfies the second condition (NO in S409), the flow proceeds to S411. On the other hand, for example, if the program code in the source line contains a character string that satisfies the second condition (YES in S409), the flow proceeds to S410. In S410, the control unit 201 edits the character string in the line, and the flow proceeds to S411.

なお、行内の文字列に編集が必要となる命令を検出するための第2の条件としては、上述のようにプログラム言語がPythonであれば、行末が「:」であることを含んでよい。この場合、制御部201は、行末の「:」の後ろに、「pass」を追加してよい。或いは、第2の条件は、検査対象の行のプログラムコードが行頭に空白を含むことであってよく、この場合、制御部201は、行頭の空白を削除する。なお、行頭の空白を削除する場合に、例えば、S408の処理で検査対象の行のプログラムコードとして複数行が抽出されている場合には、制御部201は、カーソルの移動元の行のプログラムコードと一致するインデント数を有する他の行の行頭の空白も削除してよい。 The second condition for detecting an instruction that requires editing of a character string in a line may include a ":" at the end of the line if the programming language is Python as described above. In this case, the control unit 201 may add "pass" after the ":" at the end of the line. Alternatively, the second condition may be that the program code of the line being inspected contains a space at the beginning of the line, in which case the control unit 201 deletes the space at the beginning of the line. When deleting the space at the beginning of a line, for example, if multiple lines have been extracted as the program code of the line being inspected in the process of S408, the control unit 201 may also delete the spaces at the beginning of other lines that have the same indent number as the program code of the line from which the cursor was moved.

そして、S411において制御部201は、検査対象の行のプログラムコードに構文検査を実行する。検査対象の行のプログラムコードは、例えば、S407およびS409の両方においてNOと判定された場合には、カーソルの移動元の行のプログラムコードであってよい。一方、S408およびS410の少なくとも一方の処理において、移動元の行のプログラムコードが加工されている場合には、制御部201は、加工後のプログラムコードを検査対象の行のプログラムコードとして構文検査を実行してよい。 Then, in S411, the control unit 201 performs a syntax check on the program code of the line to be checked. For example, if the determination is NO in both S407 and S409, the program code of the line to be checked may be the program code of the line from which the cursor was moved. On the other hand, if the program code of the line from which the cursor was moved has been modified in at least one of the processes of S408 and S410, the control unit 201 may perform a syntax check on the modified program code as the program code of the line to be checked.

そして、S412において構文エラーがない場合(S412がNO)、フローはS413に進む。S413において制御部201は、S404で入力された行移動の操作と対応する位置にカーソルを移動し、フローはS404に戻る。一方、S412において構文エラーがある場合(S412がYES)、フローはS414に進む。S414において制御部201は、検出された構文エラーを表示画面105に表示し、フローはS404に戻る。なお、この場合、移動元の行に構文エラーが含まれることが推定されるため、制御部201は、S404で入力された行移動の操作を実行せず、カーソル位置を移動元の行に表示させたままとしてよい。 If there is no syntax error in S412 (NO in S412), the flow proceeds to S413. In S413, the control unit 201 moves the cursor to a position corresponding to the line movement operation input in S404, and the flow returns to S404. On the other hand, if there is a syntax error in S412 (YES in S412), the flow proceeds to S414. In S414, the control unit 201 displays the detected syntax error on the display screen 105, and the flow returns to S404. In this case, since it is presumed that the source line contains a syntax error, the control unit 201 may leave the cursor position displayed on the source line without executing the line movement operation input in S404.

例えば、以上で述べたように、図4の動作フローによれば、制御部201は、カーソルをプログラムの別の行に移動させる所定の行移動の操作が入力された場合に、移動元の行のプログラムコードを対象とする構文検査を実行することができる。 For example, as described above, according to the operational flow of FIG. 4, when a predetermined line movement operation that moves the cursor to another line of the program is input, the control unit 201 can perform a syntax check on the program code of the line from which the cursor is moved.

図5は、実施形態に係るエラー表示を含む表示画面500を例示する図である。表示画面500は、例えば、S414において情報処理装置100の表示部203の表示画面105に表示されてよい。図5(a)の例では、表示画面500は、編集領域501とカーソル502とを含む。編集領域501は、例えば、プログラムの編集が行われる表示領域である。また、カーソル502は、例えば、編集領域501におけるプログラムの編集位置を示す。図5(a)の例では表示画面500には、全行数が3行のPythonのプログラムが表示されている。そして、3行目のプログラムコードの末尾にカーソル502が表示されている。 FIG. 5 is a diagram illustrating a display screen 500 including an error display according to an embodiment. The display screen 500 may be displayed on the display screen 105 of the display unit 203 of the information processing device 100 in S414, for example. In the example of FIG. 5(a), the display screen 500 includes an editing area 501 and a cursor 502. The editing area 501 is, for example, a display area where program editing is performed. The cursor 502 indicates, for example, the editing position of the program in the editing area 501. In the example of FIG. 5(a), a Python program with a total of three lines is displayed on the display screen 500. The cursor 502 is displayed at the end of the third line of program code.

ここで、例えば、ユーザが情報処理装置100のEXEキー103を押して改行コードを入力するなどし、カーソル502を別の行に移動させる操作を入力したとする。この場合、図4の動作フローで述べたように、制御部201は、3行目のプログラムコードの構文検査を実行する。そして、図5(a)の例では、3行目のプログラムコードは末尾の「)」と対応する「(」が存在しないため、構文検査プログラムにより構文エラーと判定され、構文エラーが検出されたことを示すエラー情報503として「×」が表示されている。また、図5(a)の例では、エラーが検出された行を示すエラー行504として行番号:003が表示されている。そのため、ユーザは現在入力していた3行目のプログラムコードに構文エラーが存在することを、行移動の操作を入力したタイミングで知ることができる。 Now, for example, suppose that the user presses the EXE key 103 of the information processing device 100 to input a line feed code, and inputs an operation to move the cursor 502 to another line. In this case, as described in the operation flow of FIG. 4, the control unit 201 executes a syntax check of the program code on the third line. In the example of FIG. 5(a), the program code on the third line does not have a corresponding "(" to the ")" at the end, so it is determined to be a syntax error by the syntax check program, and an "x" is displayed as error information 503 indicating that a syntax error has been detected. Also, in the example of FIG. 5(a), line number: 003 is displayed as error line 504 indicating the line where the error was detected. Therefore, the user can know that there is a syntax error in the program code on the third line that he was currently inputting at the timing of inputting the line movement operation.

このように、ユーザが1行のまとまったプログラムコードの入力が完了したと判断したタイミングで構文検査を行い、ユーザに報知することで、ユーザは入力したばかりのプログラムコードに存在する構文エラーを知ることができる。そのため、高い学習効果を期待することができる。 In this way, a syntax check is performed when the user determines that they have finished inputting a line of program code, and the user is notified. This allows the user to know about any syntax errors that exist in the program code they have just input. This is expected to have a high learning effect.

なお、図5(a)に示すように、構文エラーが検出された場合、制御部201は、入力された移動操作と対応するカーソル502の移動を取り消すなどして、移動操作が入力された際の移動元の行内にカーソルを表示したままとしてよい。それにより、ユーザはエラーが検出された行のプログラムコードを即座に修正することができる。 As shown in FIG. 5(a), when a syntax error is detected, the control unit 201 may cancel the movement of the cursor 502 corresponding to the input move operation, and may leave the cursor displayed in the line from which the move operation was input. This allows the user to immediately correct the program code in the line where the error was detected.

一方で、構文エラーが検出されなかった場合には、制御部201は、入力された移動操作と対応するカーソル502の移動を実行する。それにより、ユーザは正しい構文でプログラムを入力した場合には、構文検査が実行されたことを意識せずにプログラミングを継続することができる。 On the other hand, if no syntax error is detected, the control unit 201 executes the movement of the cursor 502 corresponding to the input movement operation. As a result, if the user has input a program with correct syntax, he or she can continue programming without being aware that a syntax check has been performed.

また、図3を参照して述べたように、実施形態では構文検査を編集モードにおいて実行するため、プログラムの編集と構文検査とを実行する際にモードの切り替えなどの余計な操作をせずにプログラムコードの修正を行うことができる。そして、例えば、図5(a)においてユーザが3行目を「print(“again!”)」に修正し、再度、カーソル502を別の行に移動させる操作を入力した場合、制御部201は、3行目のプログラムコードに構文検査を再度実行する。そして、制御部201は、再度構文検査を実行した結果、エラーが検出されなければ、カーソル502を別の行に移動させる。この様に、実施形態によれば、行ごとにプログラムコードの構文検査を実行し、構文エラーが検出されなくなるまで、ユーザに構文エラーを報知するため、プログラムの作成の際に各行のプログラムコードの完成度を高めることができる。その結果として、プログラム全体の完成度も効率的に高めることができる。 As described with reference to FIG. 3, in the embodiment, the syntax check is performed in the edit mode, so that the program code can be corrected without performing unnecessary operations such as switching between modes when editing the program and performing the syntax check. For example, in FIG. 5(a), if the user corrects the third line to "print ("again!")" and inputs an operation to move the cursor 502 to another line again, the control unit 201 performs a syntax check on the program code on the third line again. If no errors are detected as a result of performing the syntax check again, the control unit 201 moves the cursor 502 to another line. In this way, according to the embodiment, the syntax check is performed on the program code for each line, and the user is notified of syntax errors until no syntax errors are detected, so that the degree of completion of each line of the program code can be improved when creating a program. As a result, the degree of completion of the entire program can also be efficiently improved.

なお、実施形態に係るエラー情報503およびエラー行504は、図5(a)の例に限定されるものではない。例えば、別の実施形態では、図5(b)に示す表示画面510のように、制御部201は、エラー報知のための表示画面510においてエラー情報503およびエラー行504を報知してもよい。表示画面510は、例えば、S403において表示されてもよい。 The error information 503 and error line 504 according to the embodiment are not limited to the example shown in FIG. 5(a). For example, in another embodiment, the control unit 201 may notify the error information 503 and error line 504 on a display screen 510 for notifying an error, as in the display screen 510 shown in FIG. 5(b). The display screen 510 may be displayed in S403, for example.

なお、上記においては、プログラムの編集機能および実行機能を備える情報処理装置100に、実施形態に係る構文検査の機能が実装される例に説明しているが、実施形態はこれに限定されるものではない。例えば、上述の構文検査の機能は、情報処理装置100上で動作するエディタアプリケーションなどに実装されてもよい。または、例えば、サーバがネットワーク上で提供するプログラミングの学習サービスなどにおいて実施形態に係る構文検査の機能が実装されてもよい。 In the above, an example is described in which the syntax check function according to the embodiment is implemented in an information processing device 100 having a program editing function and execution function, but the embodiment is not limited to this. For example, the above-mentioned syntax check function may be implemented in an editor application that runs on the information processing device 100. Or, for example, the syntax check function according to the embodiment may be implemented in a programming learning service provided by a server over a network.

なお、上述の実施形態では、プログラム内のある行から別の行に注目行を変更する注目行変更操作として、カーソルを別の行に移動させるカーソル移動操作を例に説明を行っている。しかしながら、実施形態はこれに限定されるものではない。例えば、入力対象の行などの注目行を示すのに、カーソル以外が利用されてもよい。一例として、注目行の全体の色を、他の行の色と異なる色で表示するなどにより注目行を強調表示して、注目行を識別する場合などが考えられる。例えば、このような場合にも、プログラム内のある行から別の行に注目行を変更する注目行変更操作が入力されると、実施形態に係る構文の検査が実行されてよい。 In the above embodiment, a cursor movement operation that moves the cursor to another line is described as an example of a line-of-interest change operation that changes a line of interest from one line in a program to another line. However, the embodiment is not limited to this. For example, something other than the cursor may be used to indicate a line of interest, such as a line to be input. As an example, the line of interest may be highlighted by displaying the entire line of interest in a color different from the colors of other lines, thereby identifying the line of interest. For example, even in such a case, when a line-of-interest change operation that changes a line of interest from one line in a program to another line is input, syntax checking according to the embodiment may be performed.

以上に述べたように、上述の実施形態によれば、制御部201は、表示画面105に表示されるプログラムを編集するための操作の入力を受け付ける。そして、制御部201は、プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を受け付けた場合に、ある行に記述されたプログラムコードを対象とする構文検査を実行する。そのため、ユーザが入力を完了したばかりの行に対して構文の検査を実行することができる。 As described above, according to the above embodiment, the control unit 201 accepts input of an operation for editing a program displayed on the display screen 105. Then, when the control unit 201 accepts input of a focus line change operation for changing the focus line from one line in the program to another line, the control unit 201 executes a syntax check on the program code written in a certain line. Therefore, it is possible to execute a syntax check on a line that the user has just finished inputting.

また、上述の実施形態では、制御部201は、注目行変更操作の入力を受け付けた場合、プログラムのうちから注目行となっているある行のプログラムコードを抽出し、抽出したある行のプログラムコードを、構文エラーを検査する構文検査プログラムに処理させることで構文エラーを検査する。そのため、構文検査の実行にかかる処理負荷を低減しつつも、注目行を効率的に検査することができる。 In addition, in the above-described embodiment, when the control unit 201 receives an input for changing the focused line, it extracts the program code of a line that is the focused line from the program, and checks for syntax errors by having a syntax check program process the extracted program code of the line. This makes it possible to efficiently check the focused line while reducing the processing load required to execute the syntax check.

また、例えば、注目行となっているある行のプログラムコードが第1の条件を満たす文字列を含むとする。なお、第1の条件は、例えば、構文検査の際に前の行または後の行の情報を参照する命令を検出する条件であってよい。この場合に、上述の実施形態によれば、制御部201は、ある行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードをある行のプログラムコードに追加してから、構文検査プログラムに処理させることで構文エラーを検査する。それにより、注目行のプログラムコードを抽出したことに起因する構文エラーの発生を回避することができる。 For example, suppose that the program code of a line of interest contains a character string that satisfies a first condition. The first condition may be, for example, a condition for detecting an instruction that references information on a previous or following line during syntax checking. In this case, according to the above-described embodiment, the control unit 201 checks for syntax errors by adding to the program code of a line of interest the program code of a line that satisfies a predetermined condition and is located before or after the program code of the line of interest, and then having the syntax checking program process the program code. This makes it possible to avoid the occurrence of syntax errors caused by extracting the program code of the line of interest.

また、例えば、注目行となっているある行のプログラムコードが第2の条件を満たす文字列を含むとする。なお、第2の条件は、例えば、構文検査の際に行内のプログラムコードに編集が必要になる文字列を検出する条件であってよい。この場合に、上述の実施形態によれば、制御部201は、ある行のプログラムコードを編集してから、構文検査プログラムに処理させることで構文エラーを検査する。それにより、注目行のプログラムコードを抽出したことに起因する構文エラーの発生を回避することができる。 For example, suppose that the program code of a line that is the focus of attention contains a character string that satisfies a second condition. The second condition may be, for example, a condition for detecting a character string that requires editing in the program code in the line during syntax checking. In this case, according to the above-described embodiment, the control unit 201 checks for syntax errors by editing the program code of the line and then having the syntax checking program process it. This makes it possible to avoid the occurrence of syntax errors that result from extracting the program code of the focus of attention.

また、上述の実施形態では、情報処理装置100は、例えば、プログラムの編集を受け付ける編集モードと、プログラムを実行する実行モードとを含む動作モードで動作する。そして、制御部201は、編集モードでの動作中に、注目行変更操作が入力された場合、注目行となっているある行に記述されたプログラムコードを対象とする構文検査を実行する。構文検査でエラーが検出された場合、制御部201は、編集モードで動作したまま、ある行に記述されたプログラムコードの編集を許容する。そして、制御部201は、ある行に記述されたプログラムコードが編集されてから注目行変更操作が再入力された場合、ある行に記述された編集後のプログラムコードを対象とする構文検査を再度実行する。そのため、プログラム全体の完成度も効率的に高めることができる。 In the above embodiment, the information processing device 100 operates in an operation mode including, for example, an edit mode in which editing of a program is accepted, and an execution mode in which a program is executed. Then, when an operation to change the focused line is input during operation in the edit mode, the control unit 201 executes a syntax check on the program code written in a line that is the focused line. If an error is detected in the syntax check, the control unit 201 allows editing of the program code written in the line while still operating in the edit mode. Then, when the program code written in a line is edited and then an operation to change the focused line is input again, the control unit 201 executes a syntax check again on the edited program code written in the line. This makes it possible to efficiently improve the completeness of the entire program.

以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、または、一部の処理が省略されてもよい。例えば、プログラムを記録するファイルを新規作成する場合などのように状況に応じて、図4のS401からS403の処理は実行されなくてもよい。 Although the above describes an embodiment, the embodiment is not limited to this. For example, the above-described operation flow is an example, and the embodiment is not limited to this. If possible, the operation flow may be executed by changing the order of the processes, may include additional processes, or may omit some processes. For example, depending on the situation, such as when creating a new file to record a program, the processes from S401 to S403 in FIG. 4 may not be executed.

また、上述の実施形態では、構文検査の対象として、カーソルを別の行に移動させる入力が行われた際のカーソルの移動元の行を対象とする例を述べているが、実施形態は、これに限定されるものではない。別の実施形態では制御部201は、例えば、プログラムの全文など、カーソルの移動元の行以外も含むその他の範囲を対象として構文検査を実行してもよい。 In addition, in the above embodiment, an example is described in which the target of syntax checking is the line from which the cursor is moved when an input is made to move the cursor to another line, but the embodiment is not limited to this. In another embodiment, the control unit 201 may perform syntax checking on another range that includes more than just the line from which the cursor is moved, such as the entire text of the program.

また、例えば、プログラムには、プログラムの作成者がメモなどを記載するためのコメントアウトされた領域が含まれることがある。例えば、Pythonでは、プログラムにおいて「#」から行末までに記述された内容は実行時に無視される。そのため、上述の実施形態においてプログラムおよびプログラムコードといった場合に、構文検査において無視されるコメントアウトされた領域は含まれなくてよい。例えば、上述のS409の処理では、コメントアウトされた領域よりも前に記述されたプログラムコードにおいて行末が「:」であるかの判定が実行されてよい。 Also, for example, a program may include commented out areas where the creator of the program can write notes, etc. For example, in Python, anything written in a program from a "#" to the end of the line is ignored at runtime. Therefore, in the above-described embodiment, in the case of a program and program code, commented out areas that are ignored in syntax checking may not be included. For example, in the process of S409 described above, a determination may be made as to whether the end of a line in the program code written before the commented out area is a ":".

また、上述の実施形態において、カーソルを別の行に移動する操作が入力された際の構文検査の実行は、必ずしもカーソルを別の行に移動させる全ての操作に対して実行される必要はない。例えば、制御部201は、一部のカーソルを別の行に移動させる操作の入力では構文検査を実行しなくてもよい。 In addition, in the above-described embodiment, the execution of a syntax check when an operation to move the cursor to another line is input does not necessarily have to be performed for all operations that move the cursor to another line. For example, the control unit 201 does not have to perform a syntax check when an operation that moves some of the cursors to another line is input.

また、上述の実施形態では、プログラミング言語がPythonである場合を例に説明を行っているが、実施形態はこれに限定されるものではなく、例えば、C言語、Perlなどその他の言語に実施形態を適用することもできる。その場合に、例えば、上述のPythonではインデントにより前後の行からプログラムコードを抽出する範囲を特定する例を述べているが、C言語、Perlなどでは括弧の対応によりプログラムコードを抽出する範囲を特定してもよい。 In addition, in the above embodiment, the programming language is Python, but the embodiment is not limited to Python, and can be applied to other languages such as C and Perl. In that case, for example, in the above Python, an example is given in which the range of program code to be extracted from the previous and next lines is specified by indentation, but in C, Perl, etc., the range of program code to be extracted can be specified by matching parentheses.

図6は、実施形態に係る情報処理装置100を実現するためのコンピュータ600のハードウェア構成を例示する図である。図6の情報処理装置100を実現するためのハードウェア構成は、例えば、プロセッサ601、メモリ602、記憶装置603、読取装置604、通信インタフェース606、入出力インタフェース607、入力装置611、および表示装置612を備える。なお、プロセッサ601、メモリ602、記憶装置603、読取装置604、通信インタフェース606、入出力インタフェース607は、例えば、バス608を介して互いに接続されている。 FIG. 6 is a diagram illustrating an example of the hardware configuration of a computer 600 for realizing the information processing device 100 according to the embodiment. The hardware configuration for realizing the information processing device 100 in FIG. 6 includes, for example, a processor 601, a memory 602, a storage device 603, a reading device 604, a communication interface 606, an input/output interface 607, an input device 611, and a display device 612. The processor 601, memory 602, storage device 603, reading device 604, communication interface 606, and input/output interface 607 are connected to each other, for example, via a bus 608.

プロセッサ601は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ601は、メモリ602を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述した制御部201の一部または全部の機能を提供する。例えば、情報処理装置100のプロセッサ601は、記憶装置603に格納されているプログラムを読み出して実行することで、受付部211、検査部212として動作してよい。また、プロセッサ601は、構文検査プログラムを実行することで、プログラムの構文検査を実行してよい。 The processor 601 may be, for example, a single processor, or a multi-processor or multi-core. The processor 601 provides some or all of the functions of the control unit 201 described above by using the memory 602 to execute a program that describes, for example, the steps of the above-mentioned operational flow. For example, the processor 601 of the information processing device 100 may operate as the reception unit 211 and the inspection unit 212 by reading and executing a program stored in the storage device 603. The processor 601 may also perform syntax inspection of a program by executing a syntax inspection program.

メモリ602は、例えば半導体メモリであり、RAM領域およびROM領域を含んでよい。記憶装置603は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、または外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。 The memory 602 is, for example, a semiconductor memory, and may include a RAM area and a ROM area. The storage device 603 is, for example, a semiconductor memory such as a hard disk or a flash memory, or an external storage device. Note that RAM is an abbreviation for Random Access Memory. Also, ROM is an abbreviation for Read Only Memory.

読取装置604は、プロセッサ601の指示に従って着脱可能記憶媒体605にアクセスする。着脱可能記憶媒体605は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体などにより実現される。なお、半導体デバイスは、例えば、USB(Universal Serial Bus)メモリである。また、磁気的作用により情報が入出力される媒体は、例えば、磁気ディスクである。光学的作用により情報が入出力される媒体は、例えば、CD-ROM、DVD、Blu-ray Disc等(Blu-rayは登録商標)である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。 The reader 604 accesses the removable storage medium 605 according to instructions from the processor 601. The removable storage medium 605 is realized by, for example, a semiconductor device, a medium where information is input and output by magnetic action, or a medium where information is input and output by optical action. The semiconductor device is, for example, a Universal Serial Bus (USB) memory. The medium where information is input and output by magnetic action is, for example, a magnetic disk. The medium where information is input and output by optical action is, for example, a CD-ROM, DVD, Blu-ray Disc, etc. (Blu-ray is a registered trademark). CD is an abbreviation for Compact Disc. DVD is an abbreviation for Digital Versatile Disk.

記憶部202は、例えばメモリ602、記憶装置603、および着脱可能記憶媒体605を含んでよい。例えば、情報処理装置100の記憶装置603には、構文検査プログラム、および上述の動作フローの手順を記述したプログラムなどが格納されている。 The storage unit 202 may include, for example, a memory 602, a storage device 603, and a removable storage medium 605. For example, the storage device 603 of the information processing device 100 stores a syntax checking program and a program that describes the procedures of the above-mentioned operation flow.

通信インタフェース606は、プロセッサ601の指示に従って有線または無線通信で他の装置と通信する。 The communication interface 606 communicates with other devices via wired or wireless communication according to instructions from the processor 601.

入出力インタフェース607は、例えば、入力および出力を行う装置との間のインタフェースであってよい。図6の例では、入出力インタフェース607は、入力装置611と接続されている。入力装置611は、例えばユーザからの指示を受け付けるキー、ボタン、キーボード、タッチパネル、マイク、カメラなどのデバイスである。なお、マイクは、一例では、音声入力に利用されてよい。また、カメラは、一例では、ジェスチャー入力に利用されてよい。入力装置611は、上述の入力部204の一例である。また、図6の例では、入出力インタフェース607は、表示装置612と接続されている。表示装置612は、例えば、ディスプレイ、プロジェクタなどの表示を行うデバイスであってよく、プロセッサ601の指示に従って、表示画面に情報を表示する。表示装置612は、上述の表示部203の一例である。また、入出力インタフェース607は、例えば、スピーカなどの音声装置、およびプリンタなどの印刷装置といったその他の装置と接続されていてもよい。 The input/output interface 607 may be, for example, an interface between a device that performs input and output. In the example of FIG. 6, the input/output interface 607 is connected to an input device 611. The input device 611 is, for example, a device such as a key, button, keyboard, touch panel, microphone, or camera that receives instructions from a user. Note that, in one example, the microphone may be used for voice input. Also, in one example, the camera may be used for gesture input. The input device 611 is an example of the above-mentioned input unit 204. Also, in the example of FIG. 6, the input/output interface 607 is connected to a display device 612. The display device 612 may be, for example, a display device such as a display or projector, and displays information on a display screen according to an instruction from the processor 601. The display device 612 is an example of the above-mentioned display unit 203. Also, the input/output interface 607 may be connected to other devices such as, for example, an audio device such as a speaker, and a printing device such as a printer.

実施形態に係る各プログラムは、例えば、下記の形態で情報処理装置100に提供される。
(1)記憶装置603に予めインストールされている。
(2)着脱可能記憶媒体605により提供される。
(3)プログラムサーバなどのサーバ630からネットワーク620を介して提供される。
Each program according to the embodiment is provided to the information processing device 100 in the following form, for example.
(1) It is pre-installed in the storage device 603.
(2) Provided by a removable storage medium 605.
(3) Provided from a server 630 such as a program server via a network 620.

なお、図6を参照して述べた情報処理装置100を実現するためのコンピュータ600のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の構成の一部が、削除されてもよく、また、新たな構成が追加されてもよい。また、別の実施形態では、例えば、上述の制御部201の一部または全部の機能がFPGA、SoC、ASIC、およびPLDなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。ASICは、Application Specific Integrated Circuitの略称である。PLDは、Programmable Logic Deviceの略称である。 The hardware configuration of the computer 600 for realizing the information processing device 100 described with reference to FIG. 6 is an example, and the embodiment is not limited to this. For example, part of the above-mentioned configuration may be deleted, or a new configuration may be added. In another embodiment, for example, part or all of the functions of the above-mentioned control unit 201 may be implemented as hardware using an FPGA, SoC, ASIC, PLD, or the like. Note that FPGA is an abbreviation for Field Programmable Gate Array. SoC is an abbreviation for System-on-a-chip. ASIC is an abbreviation for Application Specific Integrated Circuit. PLD is an abbreviation for Programmable Logic Device.

以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して、または実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。 In the above, several embodiments are described. However, the embodiments are not limited to the above embodiments, and should be understood to include various modified and alternative forms of the above-mentioned embodiments. For example, it will be understood that the various embodiments can be embodied by modifying the components without departing from the spirit and scope of the embodiments. It will also be understood that various embodiments can be implemented by appropriately combining multiple components disclosed in the above-mentioned embodiments. Furthermore, it will be understood by those skilled in the art that various embodiments can be implemented by deleting some components from all the components shown in the embodiments, or by adding some components to the components shown in the embodiments.

以上の実施形態に関し、更に以下の付記を開示する。
[付記1]
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付部と、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行する検査部と、
を含む、情報処理装置。
[付記2]
前記検査部は、前記注目行変更操作の入力を前記受付部が受け付けた場合、前記プログラムのうちから前記ある行のプログラムコードを抽出し、抽出した前記ある行のプログラムコードを、構文エラーを検査する構文検査プログラムに処理させることで構文エラーを検査する、付記1に記載の情報処理装置。
[付記3]
前記検査部は、前記ある行のプログラムコードが第1の条件を満たす文字列を含む場合、前記ある行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードを前記ある行のプログラムコードに追加してから、前記構文検査プログラムに処理させることで構文エラーを検査する、付記2に記載の情報処理装置。
[付記4]
前記検査部は、前記ある行のプログラムコードが第2の条件を満たす文字列を含む場合、前記ある行のプログラムコードを編集してから、前記構文検査プログラムに処理させることで構文エラーを検査する、付記2または3に記載の情報処理装置。
[付記5]
前記受付部は、前記表示画面に表示される前記プログラム内の前記ある行に表示される前記プログラムの編集位置を示すカーソルを前記プログラム内の前記別の行に移動させる操作を、前記注目行変更操作として入力を受け付け、
前記検査部は、前記構文検査の結果、構文エラーが検出された場合、前記ある行内に前記カーソルを表示させたまま、前記構文エラーが検出されたことを示す情報および前記構文エラーが検出された行を報知する、
付記1から4のいずれかに記載の情報処理装置。
[付記6]
前記受付部は、前記表示画面に表示される前記プログラム内の前記ある行に表示される前記プログラムの編集位置を示すカーソルを前記プログラム内の前記別の行に移動させる操作を、前記注目行変更操作として入力を受け付け、
前記検査部は、前記構文検査の結果、構文エラーが検出されなかった場合、前記カーソルを前記別の行に移動させる、付記1から5のいずれかに記載の情報処理装置。
[付記7]
前記情報処理装置は、前記プログラムの編集を受け付ける編集モードと、前記プログラムを実行する実行モードとを含む動作モードで動作し、
前記検査部は、
前記編集モードでの動作中に、前記注目行変更操作が前記受付部に入力された場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行し、
前記構文検査でエラーが検出された場合、前記編集モードで動作したまま、前記ある行に記述されたプログラムコードの編集を許容し、
前記ある行に記述された前記プログラムコードが編集されてから前記受付部に前記注目行変更操作が再入力された場合、前記ある行に記述された編集後の前記プログラムコードを対象とする前記構文検査を再度実行する、
ことを特徴とする、付記1から6のいずれかに記載の情報処理装置。
[付記8]
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付ステップと、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行する検査ステップと、
を含む、情報処理装置が実行する検査方法。
[付記9]
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付ステップと、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行する検査ステップと、
を含む、処理を情報処理装置に実行させる検査プログラム。
[付記10]
付記9に記載の検査プログラムを配布するサーバ。
The following supplementary notes are further disclosed regarding the above embodiment.
[Appendix 1]
a reception unit that receives input of an operation for editing a program displayed on a display screen;
a checking unit that, when the receiving unit receives an input of a line-of-interest change operation for changing a line of interest from a line of interest in the program to another line, executes a syntax check on the program code written in the line of interest;
An information processing device comprising:
[Appendix 2]
The information processing device described in Appendix 1, wherein when the receiving unit receives input of the target line change operation, the inspection unit extracts the program code of the certain line from the program, and checks for syntax errors by processing the extracted program code of the certain line through a syntax checking program that checks for syntax errors.
[Appendix 3]
The information processing device described in Appendix 2, wherein, when the program code of the certain line includes a character string that satisfies a first condition, the inspection unit checks for syntax errors by adding to the program code of the certain line a program code of a line that satisfies a predetermined condition and is located before or after the program code of the certain line, and then having the syntax checking program process it.
[Appendix 4]
The information processing device according to claim 2 or 3, wherein, when the program code of the certain line includes a character string that satisfies a second condition, the inspection unit edits the program code of the certain line and then has the program code processed by the syntax checking program to check for syntax errors.
[Appendix 5]
the accepting unit accepts, as the target line change operation, an operation of moving a cursor indicating an editing position of the program, which is displayed on the certain line in the program displayed on the display screen, to the other line in the program;
When a syntax error is detected as a result of the syntax check, the inspection unit notifies the user of information indicating that the syntax error has been detected and the line in which the syntax error has been detected, while keeping the cursor displayed within the certain line.
5. An information processing device according to any one of claims 1 to 4.
[Appendix 6]
the accepting unit accepts, as the target line change operation, an operation of moving a cursor indicating an editing position of the program, which is displayed on the certain line in the program displayed on the display screen, to the other line in the program;
6. The information processing device according to claim 1, wherein the inspection unit moves the cursor to the other line when no syntax error is detected as a result of the syntax inspection.
[Appendix 7]
the information processing device operates in an operation mode including an edit mode in which editing of the program is accepted and an execution mode in which the program is executed;
The inspection unit includes:
When the operation to change the line of interest is input to the reception unit during the operation in the edit mode, a syntax check is performed on the program code written in the certain line;
if an error is detected in the syntax check, allowing editing of the program code written in the certain line while operating in the edit mode;
when the program code written in the certain line is edited and then the target line change operation is re-input to the reception unit, the syntax check is executed again on the edited program code written in the certain line.
7. An information processing device according to any one of claims 1 to 6.
[Appendix 8]
a receiving step of receiving an input of an operation for editing the program displayed on the display screen;
an inspection step of executing a syntax check on the program code written in a line of interest when the input of a line of interest change operation for changing the line of interest from a line of interest in the program to another line is received by the receiving unit;
An inspection method executed by an information processing device, comprising:
[Appendix 9]
a receiving step of receiving an input of an operation for editing the program displayed on the display screen;
an inspection step of executing a syntax check on the program code written in a line of interest when the input of a line of interest change operation for changing the line of interest from a line of interest in the program to another line is received by the receiving unit;
and causing an information processing device to execute a process.
[Appendix 10]
A server that distributes the inspection program described in appendix 9.

100 情報処理装置
101 キー
102 移動キー
103 EXEキー
105 表示画面
201 制御部
202 記憶部
203 表示部
204 入力部
211 受付部
212 検査部
401 ステップ
501 編集領域
502 カーソル
503 エラー情報
504 エラー行
600 コンピュータ
601 プロセッサ
602 メモリ
603 記憶装置
604 読取装置
605 着脱可能記憶媒体
606 通信インタフェース
607 入出力インタフェース
608 バス
611 入力装置
612 表示装置
620 ネットワーク
630 サーバ
100 Information processing device 101 Key 102 Movement key 103 EXE key 105 Display screen 201 Control unit 202 Storage unit 203 Display unit 204 Input unit 211 Reception unit 212 Inspection unit 401 Step 501 Editing area 502 Cursor 503 Error information 504 Error line 600 Computer 601 Processor 602 Memory 603 Storage device 604 Reading device 605 Removable storage medium 606 Communication interface 607 Input/output interface 608 Bus 611 Input device 612 Display device 620 Network 630 Server

Claims (10)

表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付部と、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査部と、
を含み、
前記検査部は、
前記ある行のプログラムコードが第1の条件を満たす文字列を含む場合、前記ある行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードを前記ある行のプログラムコードに追加してから、前記構文検査を実行する第1制御、または、
前記ある行のプログラムコードが第2の条件を満たす文字列を含む場合、前記ある行のプログラムコードを編集してから、前記構文検査を実行する第2制御、の少なくとも何れか一方を実行する、
情報処理装置。
a reception unit that receives input of an operation for editing a program displayed on a display screen;
an inspection unit that, when the reception unit receives an input of a line-of-interest change operation for changing a line of interest from a line of interest in the program to another line, executes a syntax inspection to inspect the program code described in the line for syntax errors;
Including,
The inspection unit includes:
a first control for, if the program code of the certain line includes a character string that satisfies a first condition, adding a program code of a line that satisfies a predetermined condition and is located before or after the program code of the certain line to the program code of the certain line, and then executing the syntax check; or
a second control for editing the program code of the certain line and then executing the syntax check if the program code of the certain line includes a character string that satisfies a second condition;
Information processing device.
前記検査部は、前記注目行変更操作の入力を前記受付部が受け付けた場合、前記プログラムのうちから前記ある行のプログラムコードを抽出し、抽出した前記ある行のプログラムコードを、構文エラーを検査する構文検査プログラムに処理させることで構文エラーを検査する、請求項1に記載の情報処理装置。 The information processing device according to claim 1, wherein when the reception unit receives the input of the target line change operation, the inspection unit extracts the program code of the certain line from the program, and checks for syntax errors by processing the extracted program code of the certain line through a syntax checking program that checks for syntax errors. 前記受付部は、前記表示画面に表示される前記プログラム内の前記ある行に表示される前記プログラムの編集位置を示すカーソルを前記プログラム内の前記別の行に移動させる操作を、前記注目行変更操作として入力を受け付け、
前記検査部は、前記構文検査の結果、構文エラーが検出された場合、前記ある行内に前記カーソルを表示させたまま、前記構文エラーが検出されたことを示す情報および前記構文エラーが検出された行を報知する、
請求項1に記載の情報処理装置。
the accepting unit accepts, as the target line change operation, an operation of moving a cursor indicating an editing position of the program, which is displayed on the certain line in the program displayed on the display screen, to the other line in the program;
When a syntax error is detected as a result of the syntax check, the inspection unit notifies the user of information indicating that the syntax error has been detected and the line in which the syntax error has been detected, while keeping the cursor displayed within the certain line.
The information processing device according to claim 1 .
前記受付部は、前記表示画面に表示される前記プログラム内の前記ある行に表示される前記プログラムの編集位置を示すカーソルを前記プログラム内の前記別の行に移動させる操作を、前記注目行変更操作として入力を受け付け、
前記検査部は、前記構文検査の結果、構文エラーが検出されなかった場合、前記カーソルを前記別の行に移動させる、請求項1または2に記載の情報処理装置。
the accepting unit accepts, as the target line change operation, an operation of moving a cursor indicating an editing position of the program, which is displayed on the certain line in the program displayed on the display screen, to the other line in the program;
The information processing device according to claim 1 , wherein the checking section moves the cursor to the different line when no syntax error is detected as a result of the syntax check.
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付部と、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付部が受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査部と、
を含み、前記プログラムの編集を受け付ける編集モードと、前記プログラムを実行する実行モードとを含む動作モードで動作する情報処理装置であって、
前記検査部は、
前記編集モードでの動作中に、前記注目行変更操作が前記受付部に入力された場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行し、
前記構文検査でエラーが検出された場合、前記編集モードで動作したまま、前記ある行に記述されたプログラムコードの編集を許容し、
前記ある行に記述された前記プログラムコードが編集されてから前記受付部に前記注目行変更操作が再入力された場合、前記ある行に記述された編集後の前記プログラムコードを対象とする前記構文検査を再度実行する、
情報処理装置。
a reception unit that receives input of an operation for editing a program displayed on a display screen;
an inspection unit that, when the reception unit receives an input of a line-of-interest change operation for changing a line of interest from a line of interest in the program to another line, executes a syntax inspection to inspect the program code described in the line for syntax errors;
and an information processing apparatus that operates in an operation mode including an edit mode in which the program is edited and an execution mode in which the program is executed,
The inspection unit includes:
When the operation to change the line of interest is input to the reception unit during the operation in the edit mode, a syntax check is performed on the program code written in the certain line;
if an error is detected in the syntax check, allowing editing of the program code written in the certain line while operating in the edit mode;
when the program code written in the certain line is edited and then the target line change operation is re-input to the reception unit, the syntax check is executed again on the edited program code written in the certain line.
Information processing device.
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付ステップと、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付ステップで受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査ステップと、
を含み、
前記検査ステップは、前記ある行のプログラムコードが第1の条件を満たす文字列を含む場合、前記ある行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードを前記ある行のプログラムコードに追加、または、前記ある行のプログラムコードが第2の条件を満たす文字列を含む場合、前記ある行のプログラムコードを編集、の少なくとも何れか一方を実行してから、前記構文検査を実行する、
情報処理装置が実行する検査方法。
a receiving step of receiving an input of an operation for editing the program displayed on the display screen;
a checking step of executing a syntax check for checking for syntax errors in the program code written in the certain line when the input of a target line change operation for changing a target line from a certain line in the program is received in the receiving step;
Including,
The checking step performs at least one of adding, to the program code of the certain line, program code of a line that satisfies a predetermined condition and is located before or after the program code of the certain line, if the program code of the certain line includes a character string that satisfies a first condition, or editing, to the program code of the certain line, if the program code of the certain line includes a character string that satisfies a second condition, and then performs the syntax check.
An inspection method executed by an information processing device.
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付ステップと、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付ステップにおいて受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査ステップと、
を含み、前記プログラムの編集を受け付ける編集モードと、前記プログラムを実行する実行モードとを含む動作モードで動作する情報処理装置が実行する検査方法であって、
前記検査ステップは、
前記編集モードでの動作中に、前記注目行変更操作が前記受付ステップにおいて入力された場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行し、
前記構文検査でエラーが検出された場合、前記編集モードで動作したまま、前記ある行に記述されたプログラムコードの編集を許容し、
前記ある行に記述された前記プログラムコードが編集されてから前記受付ステップにおいて前記注目行変更操作が再入力された場合、前記ある行に記述された編集後の前記プログラムコードを対象とする前記構文検査を再度実行する、
検査方法。
a receiving step of receiving an input of an operation for editing the program displayed on the display screen;
a checking step of executing a syntax check to check for syntax errors in the program code written in the certain line when an input of a line change operation for changing a line of interest from a certain line in the program is received in the receiving step;
a test method executed by an information processing apparatus that operates in an operation mode including an edit mode in which the program is edited and an execution mode in which the program is executed,
The inspection step includes:
When the operation to change the target line is input in the receiving step during the operation in the edit mode, a syntax check is performed on the program code written in the certain line;
if an error is detected in the syntax check, allowing editing of the program code written in the certain line while operating in the edit mode;
when the program code written in the certain line is edited and then the target line change operation is re-input in the receiving step, the syntax check is executed again on the edited program code written in the certain line.
Testing method.
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付ステップと、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付ステップで受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査ステップと、
を含む、処理を情報処理装置に実行させ、
前記検査ステップは、前記ある行のプログラムコードが第1の条件を満たす文字列を含む場合、前記ある行のプログラムコードより前または後に位置する所定の条件を満たす行のプログラムコードを前記ある行のプログラムコードに追加、または、前記ある行のプログラムコードが第2の条件を満たす文字列を含む場合、前記ある行のプログラムコードを編集、の少なくとも何れか一方を実行してから、前記構文検査を実行する、
検査プログラム。
a receiving step of receiving an input of an operation for editing the program displayed on the display screen;
a checking step of executing a syntax check for checking for syntax errors in the program code written in the certain line when the input of a target line change operation for changing a target line from a certain line in the program is received in the receiving step;
causing an information processing device to execute a process including
The checking step performs at least one of adding, to the program code of the certain line, program code of a line that satisfies a predetermined condition and is located before or after the program code of the certain line, if the program code of the certain line includes a character string that satisfies a first condition, or editing, to the program code of the certain line, if the program code of the certain line includes a character string that satisfies a second condition, and then performs the syntax check.
Inspection program.
表示画面に表示されるプログラムを編集するための操作の入力を受け付ける受付ステップと、
前記プログラム内のある行から別の行に注目行を変更する注目行変更操作の入力を前記受付ステップにおいて受け付けた場合、前記ある行に記述されたプログラムコードを対象として構文エラーを検査する構文検査を実行する検査ステップと、
を含む処理を情報処理装置に実行させ、
前記情報処理装置に、前記プログラムの編集を受け付ける編集モードと、前記プログラムを実行する実行モードとを含む動作モードを実行させ、
前記検査ステップは、
前記編集モードでの動作中に、前記注目行変更操作が前記受付ステップにおいて入力された場合、前記ある行に記述されたプログラムコードを対象とする構文検査を実行し、
前記構文検査でエラーが検出された場合、前記編集モードで動作したまま、前記ある行に記述されたプログラムコードの編集を許容し、
前記ある行に記述された前記プログラムコードが編集されてから前記受付ステップにおいて前記注目行変更操作が再入力された場合、前記ある行に記述された編集後の前記プログラムコードを対象とする前記構文検査を再度実行する、
検査プログラム。
a receiving step of receiving an input of an operation for editing the program displayed on the display screen;
a checking step of executing a syntax check to check for syntax errors in the program code written in the certain line when an input of a line change operation for changing a line of interest from a certain line in the program is received in the receiving step;
causing an information processing device to execute a process including
causing the information processing device to execute an operation mode including an edit mode for accepting editing of the program and an execution mode for executing the program;
The inspection step includes:
When the operation to change the target line is input in the receiving step during the operation in the edit mode, a syntax check is performed on the program code written in the certain line;
if an error is detected in the syntax check, allowing editing of the program code written in the certain line while operating in the edit mode;
when the program code written in the certain line is edited and then the target line change operation is re-input in the receiving step, the syntax check is executed again on the edited program code written in the certain line.
Inspection program.
情報処理装置と、請求項8または9に記載の検査プログラムを前記情報処理装置に配布するサーバと、を含む、システム。 A system including an information processing device and a server that distributes the inspection program according to claim 8 or 9 to the information processing device.
JP2020051540A 2020-03-23 2020-03-23 Information processing device, inspection method, inspection program, and server Active JP7631667B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020051540A JP7631667B2 (en) 2020-03-23 2020-03-23 Information processing device, inspection method, inspection program, and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020051540A JP7631667B2 (en) 2020-03-23 2020-03-23 Information processing device, inspection method, inspection program, and server

Publications (2)

Publication Number Publication Date
JP2021149843A JP2021149843A (en) 2021-09-27
JP7631667B2 true JP7631667B2 (en) 2025-02-19

Family

ID=77849306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020051540A Active JP7631667B2 (en) 2020-03-23 2020-03-23 Information processing device, inspection method, inspection program, and server

Country Status (1)

Country Link
JP (1) JP7631667B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015019504A (en) 2013-07-10 2015-01-29 住友重機械工業株式会社 Permanent magnet motor and magnetization method of the same
JP2018037052A (en) 2015-12-10 2018-03-08 株式会社リコー Information processing device, information processing system, computer program, and method
JP2019125062A (en) 2018-01-12 2019-07-25 カシオ計算機株式会社 Programming support device, programming support method and program
JP2019125055A (en) 2018-01-12 2019-07-25 カシオ計算機株式会社 Electronic equipment, display control method, and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015019504A (en) 2013-07-10 2015-01-29 住友重機械工業株式会社 Permanent magnet motor and magnetization method of the same
JP2018037052A (en) 2015-12-10 2018-03-08 株式会社リコー Information processing device, information processing system, computer program, and method
JP2019125062A (en) 2018-01-12 2019-07-25 カシオ計算機株式会社 Programming support device, programming support method and program
JP2019125055A (en) 2018-01-12 2019-07-25 カシオ計算機株式会社 Electronic equipment, display control method, and program

Also Published As

Publication number Publication date
JP2021149843A (en) 2021-09-27

Similar Documents

Publication Publication Date Title
US7802305B1 (en) Methods and apparatus for automated redaction of content in a document
EP0785510A1 (en) Program debugging system for debugging a program having a graphical user interface
JP4876511B2 (en) Logic extraction support device
JP2010520531A (en) Integrated pinyin and image input
JP2008293486A (en) Source code analysis device, analysis program, and analysis method
KR20190015285A (en) Query optimizer for CPU utilization and code refactoring
KR20040065468A (en) Treatment method for multilanguage transer of patent paper and record medium for interpretation to recording using transer software
JP2016066109A (en) Data link generation device, data link generation method, data link structure, and electronic file
JPS6047606B2 (en) program input device
JP7631667B2 (en) Information processing device, inspection method, inspection program, and server
CN113835714B (en) Application language conversion method, device, computer equipment and storage medium
JP2013041567A (en) Character input device
JP7247593B2 (en) Generation device, software robot system, generation method and generation program
JP4416644B2 (en) Character processing apparatus with prediction function, method, recording medium, and program
CN116187353A (en) Translation method, translation device, computer equipment and storage medium thereof
CN114879964A (en) Code generation method and device
JP6091471B2 (en) Source code analysis apparatus, source code analysis method, and source code analysis program
CN105700813A (en) Information processing method and terminal
CN118333020B (en) Code marking method, device and computer readable storage medium
JP7555215B2 (en) Check item generation device, check item generation method, and program
JP7469999B2 (en) Search device, search method, and search program
CN112817588B (en) A page code preview method, device and storage medium thereof
JP4894602B2 (en) Correction target file search device, correction target file search method, and correction target file search program
JP6419902B1 (en) Program comparison method, program comparison device, and program comparison program
JP6475288B2 (en) Program comparison method, program comparison device, and program comparison program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230306

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241114

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20241126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250120

R150 Certificate of patent or registration of utility model

Ref document number: 7631667

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150