Expression analysis method and device applied to semiconductor workflow, medium and product
By determining the target processor and expression interpreter according to the node type in the semiconductor workflow, and parsing and type conversion of expressions is solved, the complex problem of expression parsing in the workflow is solved, and the efficiency of dispatch is improved.
Patent Information
- Application Number
- CN202411846833.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-16
- Publication Date
- 2025-05-13
AI Technical Summary
Expression analysis in semiconductor workflow is complicated, and the prior art is difficult to effectively simplify the expression analysis process, which affects the dispatch efficiency of semiconductor manufacturing.
By determining the node type of the workflow process node, determining the target node processor, and parsing the predefined expression using the expression interpreter corresponding to the node type, and combining with the custom type converter to obtain the target analysis result.
The expression parsing process is simplified, the efficiency and accuracy of expression parsing are improved, and thus the dispatch efficiency of semiconductor manufacturing is improved.
Smart Images

Figure CN119990725A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of semiconductor manufacturing technology, and in particular to an expression parsing method, device, medium and product applied to semiconductor workflow. Background Art
[0002] Semiconductor chip manufacturing is a complex and lengthy process, including wafer manufacturing, photolithography, ion implantation, thin film deposition, packaging and testing, and many other process steps. In order to standardize and automate the machine dispatching process, a workflow system is often used to handle the dispatching process to improve the manufacturing efficiency of semiconductor chips.
[0003] In the operation of the workflow system, a large number of expressions are used to calculate process variables. Expression calculation scenarios are usually divided into two categories: one is evaluation expressions, and the other is template expressions. However, for mixed calculation scenarios where expressions are embedded in strings, the "+" connector is required to implement complex splicing operations, which is not easy to write or read, and cannot meet certain special expression scenarios, such as SQL statement parsing of SQL query nodes, JSON format parameter parsing of API call nodes, etc. Summary of the invention
[0004] One purpose of the present application is to provide an expression parsing method, device, medium and product applied to semiconductor workflows, at least to solve the complex technical problems of expression parsing in semiconductor workflows, simplify the expression parsing process in semiconductor workflows, and improve the dispatching efficiency of semiconductor manufacturing.
[0005] To achieve the above objectives, some embodiments of the present application provide the following aspects:
[0006] In a first aspect, some embodiments of the present application provide an expression parsing method applied to a semiconductor workflow:
[0007] Determine the node type of the current process node in the semiconductor workflow, and determine the target node processor according to the node type; wherein the target node processor is used to execute the business logic of the current process node;
[0008] Based on the target node processor, an expression interpreter corresponding to the node type is used to parse the predefined expression in the current process node to determine a candidate parsing result;
[0009] Based on the custom type converter, the candidate parsing result is converted into a type to determine the target parsing result.
[0010] In a second aspect, some embodiments of the present application further provide an electronic device, comprising: one or more processors; and a memory storing computer program instructions, wherein the computer program instructions, when executed, cause the processor to perform the steps of the method described above.
[0011] In a third aspect, some embodiments of the present application further provide a computer-readable medium having computer program instructions stored thereon, wherein the computer program instructions can be executed by a processor to implement the method as described above.
[0012] In a fourth aspect, some embodiments of the present application further provide a computer program product, comprising a computer program / instruction, which implements the steps of the method described above when executed by a processor.
[0013] Compared with the related art, in the solution provided in the embodiment of the present application, by determining the node type of the workflow process node to achieve the determination of the expression parsing scenario, it is not only possible to parse the expression in a targeted manner and simplify the way users write expressions, but also to improve the parsing efficiency and accuracy of the expression, thereby improving the dispatching efficiency of semiconductor manufacturing. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] One or more embodiments are exemplarily described by pictures in the corresponding drawings, and these exemplified descriptions do not constitute limitations on the embodiments. Elements with the same reference numerals in the drawings represent similar elements, and unless otherwise stated, the figures in the drawings do not constitute proportional limitations.
[0015] Figure 1 A flow chart of an expression parsing method applied to a semiconductor workflow provided according to the first embodiment of the present application;
[0016] Figure 2 A flow chart of an expression parsing method for a semiconductor workflow provided according to a second embodiment of the present application;
[0017] Figure 3 A flow chart of an expression parsing method for a semiconductor workflow provided according to a third embodiment of the present application;
[0018] Figure 4 A schematic diagram of an exemplary structure provided according to some embodiments of the present application. DETAILED DESCRIPTION
[0019] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0020] The following terms are used in this article.
[0021] Workflow: refers to a series of orderly activities, tasks or steps, usually carried out according to predetermined rules and sequence. These activities can involve different participants, systems or resources, and are coordinated and executed according to specific business needs and logical relationships. Workflow can help automate business processes, improve efficiency and ensure consistency.
[0022] Semiconductor workflow: refers to a series of orderly tasks and operational processes involved in the semiconductor manufacturing process.
[0023] Process node: A process node is a specific step or activity in a workflow. Each process node represents a task, decision point, or event that needs to be executed by a participant or system. A process node can include performing a specific action, waiting for external input, or triggering other related process nodes. Together, they form the execution path and logic of the workflow.
[0024] Expression language: It is a simplified expression language that only requires writing a small amount of script code on the front-end page and supports querying and operating object graphs at execution time.
[0025] Expression mode: Expression mode allows you to mix a string with one or more expression blocks, and the expression placeholders embedded in the string are replaced with the final parsed result.
[0026] First embodiment
[0027] The first embodiment of the present application relates to an expression parsing method applied to semiconductor workflows. The core of this implementation is to determine the node type of the current process node in the semiconductor workflow, and determine the target node processor according to the node type; wherein the target node processor is used to execute the business logic of the current process node; based on the target node processor, an expression interpreter corresponding to the node type is used to parse the predefined expression in the current process node to determine the candidate parsing result; based on a custom type converter, the candidate parsing result is type-converted to determine the target parsing result. In order to solve the complex technical problems of expression parsing in semiconductor workflows, simplify the expression parsing process in semiconductor workflows, and improve the dispatching efficiency of semiconductor manufacturing. The implementation details of the expression parsing method applied to semiconductor workflows in this embodiment are described in detail below. The following content is only the implementation details provided for the convenience of understanding, and is not necessary for the implementation of this solution.
[0028] The expression parsing method applied to semiconductor workflow in the first embodiment of the present application is as follows Figure 1 As shown, specifically including:
[0029] S110, determining a node type of a current process node in a semiconductor workflow, and determining a target node processor according to the node type;
[0030] Wherein, the target node processor is used to execute the business logic of the current process node;
[0031] S120, based on the target node processor, using an expression interpreter corresponding to the node type, parsing the predefined expression in the current process node to determine a candidate parsing result;
[0032] S130: Based on the custom type converter, perform type conversion on the candidate parsing result to determine the target parsing result.
[0033] The following is a detailed description of each of the above steps.
[0034] For S110, the semiconductor workflow is composed of different process nodes. Different process nodes correspond to different expression parsing scenarios. For example, the variable setting node mainly processes and converts process variables, and the evaluation expression mode can be used. Another example is the log node, which mainly records some key data information in the process operation, which is used to observe the process operation status and trace back and analyze the abnormal causes, and the template expression mode can be used.
[0035] After determining the node type (i.e., functional characteristics) of the current process node in the semiconductor workflow, the target node processor corresponding to the node type can be determined according to the node type to execute the business logic of the current process node. Specifically, the target node processor can be determined by the workflow engine according to the node type.
[0036] Exemplarily, a mapping relationship between node types and node processors may be established in advance in the workflow engine, such as program logic, configuration files, or database table mapping, and then the target node processor corresponding to the node type is determined based on the mapping relationship.
[0037] For S120, the expression interpreter can be divided into an evaluation type expression interpreter, a template type expression interpreter, a JSON expression interpreter or a SQL expression interpreter.
[0038] Predefined expressions can be expressions written in advance in the process nodes by workflow process designers. To simplify the way users write expressions, this application allows any system-supported variable type expression or preset function to be embedded in a string. The supported variable types include: int, long, float, double, string, boolean, map, date, and collection arrays, which are consistent with the writing style of commonly used evaluation expressions.
[0039] In some embodiments of the present application, the syntax definition of the predefined expression includes: for variable reference, using {} to wrap the target variable and using $ as a prefix to reference the target variable; for function reference, using #f as a prefix to reference the target function.
[0040] For variable reference, for example, the target variable can be wrapped with the {} symbol and the target variable can be referenced with the $ symbol as a prefix. The unwrapped part is a constant. For example, if an expression is "{$EQP_LIST[0]}", the expression will reference the first element of the collection variable EQP_LIST.
[0041] For function reference, for example, the #f symbol can be used as a prefix to reference the target function. For example, if an expression is "#f_distinct({$EQP_LIST})", the expression will call the distinct function to perform deduplication processing on the collection variable EQP_LIST.
[0042] In some practical applications, predefined expressions in different process nodes can be written by combining the variable reference definition and function reference definition described above.
[0043] For example, for the variable setting node to process the process variables, its predefined expression can be written as:
[0044] #f_distinct({$EQP_PORT_LIST.?[reason==""].![parentName]}).
[0045] The meaning of the above expression is to filter out the elements whose "reason" is an empty string from "EQP_PORT_LIST", extract the "parentName" attribute values of these elements, and then deduplicate the extracted attribute values.
[0046] For another example, for a log node to print key logs, its predefined expression can be written as:
[0047] select eqp_id from eqp_info where area_type={$area_type}order byeqp_id.
[0048] The meaning of the above expression is to select the value of the "eqp_id" column from the table named "eqp_info" when the value of the "area_type" column is equal to the value represented by the variable "$area_type" and sort in ascending order according to the "eqp_id" column.
[0049] In other systems, for log nodes to print key logs, the expression can be written as:
[0050] "select eqp_id from eqp_info where area_type="+#f_obj_is_null({$area_type})? null:#f_str_wrap({$area_type},"'","'")+"order by eqp_id".
[0051] The above expression means to select the value of the "eqp_id" column from the table named "eqp_info". The screening condition is that if the value of the variable "{area_type}" is null (that is, it does not exist or is undefined), then the condition part will become "area_type=null". If the variable "{area_type}" has a value, then the value will be wrapped in single quotes through "#f_str_wrap({area_type},"'","'")" and sorted in ascending order according to the value of the "eqp_id" column.
[0052] It can be seen that this application simplifies the writing of expressions by combining variable reference definitions and function reference definitions to write predefined expressions in different process nodes. Any type of variable expression or preset function expression defined by the system can be directly embedded in the string.
[0053] In some embodiments of the present application, based on the target node processor, an expression interpreter corresponding to the node type is used to parse the predefined expression in the current process node to determine a candidate parsing result, including:
[0054] S121, based on the target node processor, extracting all expression blocks in the predefined expression; wherein the type of the expression block includes a variable expression or a function expression;
[0055] S122, using an expression interpreter corresponding to the node type to parse each of the expression blocks respectively to determine candidate parsing results.
[0056] For S121, a predefined expression consists of at least one variable expression block or function expression block. A variable expression block identifier represents a specific value or data, for example, "${variableName}" is a variable expression block. A function expression block usually contains a function name and a set of parameters, which are used to perform specific operations and return results, for example, "#f_functionName(arg1,arg2) is a function expression block.
[0057] Specifically, the predefined expression can be traversed, and the content in the predefined expression can be checked character by character. Exemplarily, the start mark can be identified first. If "${" is encountered, the expression block identification can be started; then the content following the start mark can be identified. If the start mark is followed by an identifier, the subsequent characters will continue to be checked until the end mark "}" is encountered, and it is determined to be a variable expression block. If the start mark is followed by a function name and brackets, the subsequent characters will continue to be checked until the end mark "}" is encountered, and it is determined to be a function expression block; then the identified expression block is extracted, and the remaining part of the predefined expression is traversed, and the above steps are repeated until the entire predefined expression is traversed.
[0058] For S122, an expression interpreter corresponding to the node type may be used to parse each expression block to determine a candidate parsing result. For example, an evaluation expression template may be called to parse each extracted expression block to obtain a parsing result of each expression block, and the parsing results of each expression block may be combined into a candidate parsing result.
[0059] Through the above technical solution, the accuracy and efficiency of processing predefined expressions can be improved.
[0060] With respect to S130, in order to support mixing of a string and one or more expression blocks of all variable types supported by the system, the present application performs type conversion on the candidate parsing results by setting a custom type converter to determine the target parsing result.
[0061] Specifically, you can first implement a custom type converter based on the variable type that needs to be converted, the converted variable type, and the type conversion logic; then instantiate the expression interpreter; then instantiate the custom type converter; finally, automatically register the instance of the custom type converter with the system through a registration center or in factory mode, so that it can be automatically found and used when type conversion is needed. For example, you can create a type converter registry and register the instance of the custom type converter when the system starts.
[0062] In some embodiments of the present application, before performing type conversion on the candidate parsing results based on a custom type converter to determine the target parsing results, the method also includes: determining the expected value type of the predefined expression; if the expected value type is a string type, determining the parsed value type of the predefined expression; if the parsed value type is any one of a date type, a mapping type, and a list type, performing type conversion on the candidate parsing results based on the custom type converter to determine the target parsing results.
[0063] This application mainly provides a detailed explanation for the case where the expected value type is a string type.
[0064] Specifically, you can first determine whether the expected value type of the predefined expression is a string type. For example, in a data processing flow, there is a configuration item that can specify the expected value type of a specific output. If the configuration item indicates that the expected value type is a string type, then the subsequent processing steps will be entered to further determine the parsed value type and automatically adapt.
[0065] If the parsed value type is a date type, the date can be converted to a string format, usually in the form of "YYYY-MM-DD HH:MM:SS". For example, if the parsed value is a datetime object of the current time, the corresponding custom type converter can be called to convert it to a string in the specified format, so that the date type data can be readable and consistent when output as a string.
[0066] If the parsed value type is a mapping type, such as a dictionary in Python or a Map in Java, since the mapping itself contains a key-value pair structure, it can be directly serialized into a string to retain its structure information. For example, a dictionary containing "name":"John""age":30 will become a string of "{"name":"John","age":30}" after serialization.
[0067] If the parsed value type is a list type, since lists usually contain a series of elements of the same or different types, they can also be serialized directly into strings, and the serialized string can still clearly represent the order and content of the elements in the list. For example, a list containing integers [1,2,3] becomes a string of "[1,2,3]" after serialization.
[0068] The above technical solution determines whether it is necessary to perform type conversion on the candidate parsing result based on a custom type converter by judging the expected value type and the parsed value type of the predefined expression, thereby reducing the processing logic of the user-written expression to realize expressions of arbitrary variable types mixed in strings.
[0069] Furthermore, each placeholder in the predefined expression may be replaced with a value after the adaptation conversion as the target parsing result.
[0070] It is not difficult to find that compared with the related technology, the solution provided by the embodiment of the present application, by determining the node type of the workflow process node to achieve the determination of the expression parsing scenario, can not only parse the expression in a targeted manner and simplify the way users write expressions, but also improve the parsing efficiency and parsing accuracy of the expression, thereby improving the dispatching efficiency of semiconductor manufacturing.
[0071] Second embodiment
[0072] The second embodiment of the present application relates to an expression parsing method applied to semiconductor workflow. The second embodiment is an improvement on the first embodiment, and the specific improvement is that in the second embodiment, the current process node is limited to an API call node and the predefined expression in the API call node is a JSON text. Figure 2 As shown, the method specifically includes
[0073] S210, determining a node type of a current process node in a semiconductor workflow, and determining a target node processor according to the node type;
[0074] Wherein, the target node processor is used to execute the business logic of the current process node; the current process node is an API call node;
[0075] S220, based on the target node processor, using an expression interpreter corresponding to the node type, parsing the predefined expression in the current process node to determine a candidate parsing result;
[0076] Wherein, the predefined expression in the API call node is a JSON text;
[0077] S230, based on the JSON format adapter, performing format conversion on the candidate parsing result according to the first conversion principle to determine a target parsing result;
[0078] Among them, the first conversion principle includes: if the candidate parsing result is a string variable, the character value in the candidate parsing result is wrapped with ""; if the candidate parsing result is a time variable, the format of the time value in the candidate parsing result is converted to a preset time format, and the converted time value is wrapped with ""; if the candidate parsing result is a mapping variable, the mapping object in the candidate parsing result is serialized into a JSON string; if the candidate parsing result is an array variable, the array object in the candidate parsing result is serialized into a JSON string; if the candidate parsing result is a null value variable, the candidate parsing result is converted into a preset string constant.
[0079] The following is a detailed description of each of the above steps.
[0080] For S210, the API call node is the node where the semiconductor workflow interacts with the external system to obtain the required data or perform specific operations. JSON, as a widely used data exchange format, is usually the preferred input format and output format of the API interface. Therefore, parsing the JSON input parameter in the API call node, especially when the JSON value comes from the expression of the process variable, can greatly enhance the flexibility and adaptability of the workflow.
[0081] For S220, a JSON expression interpreter may be used to parse the JSON text and determine candidate parsing results.
[0082] Specifically, all variable expression blocks or function expression blocks in the JSON text may be extracted, the expression block set may be traversed, and the extracted expression blocks may be parsed by calling the evaluation class expression pattern to obtain candidate parsing results.
[0083] In some embodiments, based on the target node processor, using an expression interpreter corresponding to the node type, the predefined expression in the current process node is parsed to determine the candidate parsing result. The method also includes: determining the format of the predefined expression; if the format is JSON format, based on a JSON format adapter, converting the format of the candidate parsing result according to a first conversion principle to determine the target parsing result.
[0084] Specifically, the format of the predefined expression can be verified by using a JSON parsing library or a regular expression to determine whether the format of the predefined expression conforms to the JSON format syntax. If the format is JSON format, further parsing is performed; if the format is not JSON format, parsing is terminated.
[0085] The beneficial effect of the above technical solution is that the efficiency and accuracy of expression parsing are improved by pre-checking the JSON format of the string mixed with the expression.
[0086] For S230, in the JSON string parameter, the JSON value comes from the expression of the process variable, the expression is called to parse the JSON string, and the parsed JSON format string is used as a parameter to call the corresponding API interface of the request.
[0087] For JSON input parameter parsing in the API call node, the custom type converter is a JSON format adapter. Specifically, the parsing result of each expression block can be converted into a format according to the first conversion principle.
[0088] Exemplarily, if the candidate parsing result is a string variable, the string value is wrapped in double quotes "" and returned; if the candidate parsing result is a time variable, the time object is wrapped in double quotes "" in the format of yyyy-MM-dd HH:mm:ss and returned; if the candidate parsing result is a mapping variable, the mapping object is serialized into a JSON string; if the candidate parsing result is an array variable, the array object is serialized into a JSON string; if the candidate parsing result is a null value variable, that is, when a null value is encountered, the string constant null is returned.
[0089] Finally, replace each expression block placeholder in the entire expression with the target parsed result after adaptation transformation.
[0090] It is not difficult to find that in the embodiment of the present application, through the JSON format adapter, it is possible to support the JSON input parameter parsing of the API call node in the workflow, and by using the parsed string as the parameter to call the corresponding API interface of the request, the flexibility and adaptability of the semiconductor workflow are improved.
[0091] Third embodiment
[0092] The third embodiment of the present application relates to an expression parsing method applied to semiconductor workflow. The third embodiment is an improvement on the first embodiment, and the specific improvement is: in the third embodiment, the current process node is defined as an SQL query node, and the predefined expression in the SQL query node is an SQL statement. Figure 3 As shown, the method specifically includes
[0093] S310, determining a node type of a current process node in a semiconductor workflow, and determining a target node processor according to the node type;
[0094] Wherein, the target node processor is used to execute the business logic of the current process node; the current process node is an SQL query node;
[0095] S320, based on the target node processor, using an expression interpreter corresponding to the node type, parsing the predefined expression in the current process node to determine a candidate parsing result;
[0096] Wherein, the predefined expression in the SQL query node is a SQL statement;
[0097] S330, based on the SQL parsing adapter, converting the format of the candidate parsing result according to the second conversion principle to determine the target parsing result;
[0098] Among them, the second conversion principle includes: if the candidate parsing result is a string variable, the character value in the candidate parsing result is wrapped with ''; if the candidate parsing result is a time variable, the format of the time value in the candidate parsing result is converted to a preset time format, and the converted time value is wrapped with ''; if the candidate parsing result is an array variable, each element in the array object in the candidate parsing result is converted separately, and the converted elements are concatenated into a string; if the candidate parsing result is a null value variable, the candidate parsing result is converted into a preset string constant.
[0099] The following is a detailed description of each of the above steps.
[0100] For S310, when the current process node is a SQL query node,
[0101] For S320, an SQL expression interpreter may be used to parse the SQL statement and determine candidate parsing results.
[0102] Specifically, all variable expression blocks or function expression blocks in the SQL statement may be extracted, the expression block set may be traversed, and the extracted expression blocks may be parsed by calling the evaluation-like expression pattern to obtain candidate parsing results.
[0103] For S330, in the SQL statement, the query condition parameter comes from the process variable expression. After calling the expression for SQL parsing, the parsed SQL statement can be sent to the database for execution.
[0104] For SQL statement parsing in SQL query nodes and SQL operation nodes in the workflow, the custom type converter is an SQL parsing adapter. Specifically, the parsing result of each expression block can be format converted according to the second conversion principle.
[0105] Exemplarily, if the candidate parsing result is a string variable, the string value is wrapped in single quotes '' and returned; if the candidate parsing result is a time variable, the time object is wrapped in single quotes '' in the format of yyyy-MM-dd HH:mm:ss and returned; if the candidate parsing result is an array variable, each element in the array object can be converted according to the above conversion method, and then connected into a string using commas; if the candidate parsing result is a null value variable, that is, when a null value is encountered, the string constant null is returned.
[0106] Finally, replace each expression block placeholder in the entire expression with the target parsed result after adaptation transformation.
[0107] It is not difficult to find that in the embodiment of the present application, through the SQL parsing adapter, it is possible to support the parsing of SQL statements in the SQL query nodes and SQL operation nodes in the workflow, and by sending the parsed SQL statements to the database for execution, the flexibility and adaptability of the semiconductor workflow are improved.
[0108] The step division of the above methods is only for the purpose of clear description. When implemented, they can be combined into one step or some steps can be split and decomposed into multiple steps. As long as they include the same logical relationship, they are all within the scope of protection of this patent; adding insignificant modifications to the algorithm or process or introducing insignificant designs without changing the core design of the algorithm and process are all within the scope of protection of this patent.
[0109] In addition, some embodiments of the present application also provide an electronic device. The electronic device may be a digital computer in various forms, such as a laptop computer, a desktop computer, a workbench, a personal digital assistant, a server, a blade server, a mainframe computer, etc. The electronic device may also be a mobile device in various forms, such as a personal digital processing, a cellular phone, a smart phone, a wearable device, and other similar computing devices.
[0110] The electronic device includes: one or more processors; and a memory storing computer program instructions, wherein when the computer program instructions are executed, the processor executes the steps of the method provided in any one or more of the above embodiments. Figure 4 An exemplary structural diagram of the electronic device is disclosed. Figure 4 As shown, the electronic device includes: one or more processors 1101, memory 1102, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. The various components are connected to each other using different buses and can be installed on a common mainboard or installed in other ways as needed. The processor can process instructions executed in the electronic device, including instructions stored in or on the memory to display graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In some other embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Among them, the components shown in this article, their connections and relationships, and their functions are only used as examples, and are not intended to limit the implementation of the present application described and / or required herein.
[0111] The electronic device may further include: an input device 1103 and an output device 1104. The processor 1101, the memory 1102, the input device 1103 and the output device 1104 may be connected via a bus or other means, and FIG. XX takes the connection via a bus as an example.
[0112] The input device 1103 can receive input digital or character information, and generate key signal input related to the user settings and function control of the electronic device, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, an indicator bar, one or more mouse buttons, a trackball, a joystick and other input devices. The output device 1104 may include a display device, an auxiliary lighting device (e.g., an LED) and a tactile feedback device (e.g., a vibration motor), etc. The display device may include, but is not limited to, a liquid crystal display (LCD), a light emitting diode (LED) display and a plasma display. In some embodiments, the display device may be a touch screen.
[0113] To provide interaction with a user, the electronic device may be a computer. The computer has: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or a trackball), through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form (including acoustic input, voice input, or tactile input).
[0114] In the embodiments of the present application, a computer program / instruction is stored on a computer-readable medium, and when the computer program / instruction is executed by a processor, the steps of the method provided by any one or more of the above embodiments are implemented. The computer-readable medium may be included in the electronic device described in the above embodiments; or it may exist independently without being assembled into the device. The above computer-readable medium carries one or more computer-readable instructions.
[0115] The memory 1102 can be used as a non-transient computer-readable storage medium, which can be used to store non-transient software programs, non-transient computer executable programs and modules. The processor 1101 executes various functional applications and data processing of the server by running the non-transient software programs, instructions and modules stored in the memory 1102, so as to implement the program instructions / modules corresponding to the method provided by any one or more embodiments in the embodiments of the present application.
[0116] The memory 1102 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the electronic device, etc. In addition, the memory 1102 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory 1102 may optionally include a memory remotely arranged relative to the processor 1101, and these remote memories may be connected to the electronic device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0117] It should be noted that the computer-readable medium described in the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device.
[0118] Computer readable media include permanent and non-permanent, removable and non-removable media, and can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, modules of programs or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
[0119] Computer program code for performing the operations of the present application may be written in one or more programming languages or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0120] In the above-described embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. For example, it can be implemented by using an application specific integrated circuit (ASIC), a general-purpose computer or any other similar hardware device. In certain embodiments, the software program of the present application can be executed by a processor to implement the above steps or functions. Similarly, the software program of the present application (including relevant data structures) can be stored in a computer-readable recording medium, for example, a RAM memory, a magnetic or optical drive or a floppy disk and similar devices. In addition, some steps or functions of the present application can be implemented by hardware, for example, as a circuit that cooperates with a processor to perform each step or function.
[0121] The computer program product provided in the embodiment of the present application includes one or more computer programs / instructions, and when the computer program / instructions are executed by the processor, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from a computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, a computer, a server or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integrations. The available medium may be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.
[0122] The flow chart or block diagram in the accompanying drawings shows the possible architecture, function and operation of the equipment, method and computer program product according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented with a dedicated system for hardware that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0123] The scope of the present application is defined by the appended claims rather than the above description, and it is intended that all changes that fall within the meaning and scope of the equivalent elements of the claims are included in the present application. Any figure mark in the claims should not be regarded as limiting the claims involved. In addition, it is clear that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices stated in the device claim may also be implemented by one unit or device through software or hardware. The words "first", "second", etc. are only used to distinguish the description, and do not indicate any particular order, nor can they be understood as indicating or implying relative importance.
[0124] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily mention changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims, and the above embodiments should be regarded as exemplary and non-restrictive.
Claims
1. An expression parsing method, characterized in that: The method comprises: Determine the node type of the current process node in the semiconductor workflow, and determine the target node processor according to the node type; wherein the target node processor is used to execute the business logic of the current process node; Based on the target node processor, an expression interpreter corresponding to the node type is used to parse the predefined expression in the current process node to determine a candidate parsing result; Based on the custom type converter, the candidate parsing result is converted into a type to determine the target parsing result.
2. The method according to claim 1, characterized in that: Based on the target node processor, an expression interpreter corresponding to the node type is used to parse the predefined expression in the current process node to determine a candidate parsing result, including: Based on the target node processor, extract all expression blocks in the predefined expression; wherein the type of the expression block includes a variable expression or a function expression; An expression interpreter corresponding to the node type is used to parse each expression block respectively to determine a candidate parsing result.
3. The method according to claim 1, characterized in that Before performing type conversion on the candidate parsing result based on the custom type converter to determine the target parsing result, the method further includes: Determining the expected value type of the predefined expression; If the expected value type is a string type, determining the parsed value type of the predefined expression; If the parsed value type is any one of a date type, a mapping type, and a list type, the candidate parsing result is type-converted based on a custom type converter to determine a target parsing result.
4. The method according to claim 1, characterized in that: The current process node is an API call node, and the predefined expression in the API call node is a JSON text; Accordingly, based on the custom type converter, the candidate parsing result is type-converted to determine the target parsing result, including: Based on the JSON format adapter, the candidate parsing result is format converted according to the first conversion principle to determine the target parsing result; The first conversion principle includes: If the candidate parsing result is a string variable, "" is used to wrap the character value in the candidate parsing result; If the candidate parsing result is a time variable, the format of the time value in the candidate parsing result is converted to a preset time format, and the converted time value is wrapped with ""; If the candidate parsing result is a mapping variable, serialize the mapping object in the candidate parsing result into a JSON string; If the candidate parsing result is an array variable, serialize the array object in the candidate parsing result into a JSON string; If the candidate parsing result is a null value variable, the candidate parsing result is converted into a preset string constant.
5. The method according to claim 4, characterized in that Before the target node processor uses an expression interpreter corresponding to the node type to parse the predefined expression in the current process node and determine the candidate parsing result, the method further includes: Determining the format of the predefined expression; If the format is JSON format, based on a JSON format adapter, the format of the candidate parsing result is converted according to a first conversion principle to determine a target parsing result.
6. The method according to claim 1, characterized in that The current process node is an SQL query node, and the predefined expression in the SQL query node is an SQL statement; Accordingly, based on the custom type converter, the candidate parsing result is type-converted to determine the target parsing result, including: Based on the SQL parsing adapter, the candidate parsing result is formatted according to the second conversion principle to determine the target parsing result; The second conversion principle includes: If the candidate parsing result is a string variable, the character value in the candidate parsing result is wrapped with ''; If the candidate parsing result is a time variable, the format of the time value in the candidate parsing result is converted to a preset time format, and the converted time value is wrapped in ''; If the candidate parsing result is an array variable, each element in the array object in the candidate parsing result is converted respectively, and the converted elements are concatenated into a string; If the candidate parsing result is a null value variable, the candidate parsing result is converted into a preset string constant.
7. The method according to any one of claims 1 to 6, characterized in that: The syntax definition of the predefined expression includes: For variable reference, use {} to wrap the target variable and use $ as a prefix to reference the target variable; For function reference, use #f as the prefix to reference the target function.
8. An electronic device, characterized in that: The electronic device comprises: one or more processors; and A memory storing computer program instructions, which, when executed, cause the processor to perform the steps of the method as claimed in any one of claims 1 to 7.
9. A computer readable medium having a computer program / instruction stored thereon, characterized in that: When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.