Skip to content

Commit

Permalink
Findings review
Browse files Browse the repository at this point in the history
  • Loading branch information
tomuben committed Oct 24, 2024
1 parent 992e2a5 commit 40bee04
Showing 1 changed file with 43 additions and 13 deletions.
56 changes: 43 additions & 13 deletions exaudfclient/docs/script_options_requirments.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,16 @@ This section lists the key features of the new UDF Client Script Options parser
### General Script Options Parsing
`feat~general-script-options-parsing~1`

Script Options must be parsed according to syntax definition.
Developers can add additional Options in an easy and consistent way.

Needs: req

### Java-specific Script Options
`feat~java-specific-script-options~1`

The parser must process all Java specific options correctly.

Needs: req

## High-level Requirements
Expand All @@ -33,23 +38,32 @@ This section details the high-level requirements for the new parser system, link
### General Script Options Parsing
`req~general-script-options-parsing~1`

The parser must correctly identify and handle Script Options with the syntax `%optionKey optionValue;`. It must also manage whitespace and ignore non-Script Options as specified.
The parser must correctly identify and handle Script Options with the syntax `%<optionKey><white spaces><optionValue>;`. It must also manage white spaces and ignore non-Script Options as specified.

Needs: dsn

Covers:
- `feat~general-script-options-parsing~1`

### Multiple and Duplicate Options Management
`req~multiple-duplicate-options-management~1`
### Multiple and Options
`req~multiple-options-management~1`

The parser must collect multiple Script Options with the same key and handle duplicates according to specific rules for different options.
The parser must collect multiple Script Options with the same key. Note: the specific handling depends on the option handler.

Needs: dsn

Covers:
- `feat~general-script-options-parsing~1`

### Duplicate Options Management
`req~multiple-options-management~1`

The parser must collect multiple Script Options with the same key and value. Note: the specific handling depends on the option handler.

Needs: dsn

Covers:
- `feat~general-script-options-parsing~1`
- `feat~java-specific-script-options~1`

### Script Option Removal
`req~script-option-removal~1`
Expand All @@ -65,7 +79,7 @@ Covers:
### Java %scriptclass Option Handling
`req~java-scriptclass-option-handling~1`

The parser must correctly identify a single %scriptclass option and remove any additional occurrences of this option within the script code.
The parser must correctly identify the first `%scriptclass` option and remove any additional occurrences of this option within the script code.

Needs: dsn

Expand All @@ -92,33 +106,49 @@ Needs: dsn
Covers:
- `feat~java-specific-script-options~1`

### Java %import Option Handling
`req~java-import-option-replace-referenced-scripts~1`

For each found %import option, the parser must request and replace the referenced scripts recursively. This means,
if the referenced scripts contain also `%import` options, the implementation must replace those, too.

Needs: dsn

Covers:
- `feat~java-specific-script-options~1`

### Java %import Option Handling
`req~java-import-option-handling~1`

For each found %import option, the parser must request and replace the found Script Option with the referenced script code, also handling nested options appropriately.
For each found %import option, the parser must handle nested Script Options appropriately:
1. `%scriptclass` option must be ignored, but removed from the script code.
2. All other options must be handled as if they were part of the source script.

Needs: dsn

Covers:
- `feat~java-specific-script-options~1`

### New Parser Implementation
`req~new-parser-implementation~1`
### Existing Parser Library Dependencies
`req~existing-parser-library-dependencies~1`

The new parser must be implemented using an existing, open-source parser that supports definition of Lexer and Parser Rules in C++ code without additional runtime dependencies.
The implementation needs to be Open Source because the projects where the parser will be used are mainly Open Source, too.
It is important to avoid additional runtime dependencies, as this would complicate the setup and maintenance of the runtime environment of the UDF client (aka Script Languages Container).


Needs: dsn

Covers:
- `feat~general-script-options-parsing~1`

### New Parser Integration
`req~new-parser-integration~1`
### Existing Parser Linker Namespace Compatibility
`req~existing-parser-linker-namespace-compatibility~1`

Ensure that the new parser integrates seamlessly into the Exasol UDF Client environment, meeting all specified dependency and embedding requirements.
Ideally, the new parser should allow encapsulation in a custom C++ namespace, in order to avoid possible linker namespace conflicts with customer libraries.

Needs: dsn

Covers:
- `feat~general-script-options-parsing~1`
- `feat~java-specific-script-options~1`

0 comments on commit 40bee04

Please sign in to comment.