Skip to content

Commit fe51d8a

Browse files
Steve RamageSJrX
authored andcommitted
feat: add a whole bunch of AI generated validators (Resolves #385)
1 parent e95e790 commit fe51d8a

File tree

284 files changed

+12943
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

284 files changed

+12943
-1
lines changed

src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/semanticdata/SemanticDataRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ class SemanticDataRepository private constructor() {
156156
validatorMap.putAll(InAddrPrefixesOptionValue.validators)
157157
validatorMap.putAll(UIntOptionValues.validators)
158158
validatorMap.putAll(SimpleGrammarOptionValues.validators)
159+
validatorMap.putAll(getAllAIGeneratedValidators())
159160
fileClassToSectionNameToKeyValuesFromDoc["unit"]?.remove(SCOPE_KEYWORD)
160161
fileClassToSectionToKeyAndValidatorMap["unit"]?.remove(SCOPE_KEYWORD)
161162
}

src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/semanticdata/optionvalues/AiGenerated.kt

Lines changed: 190 additions & 0 deletions
Large diffs are not rendered by default.

src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/semanticdata/optionvalues/SimpleGrammarOptionValues.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.gram
55

66

77

8-
class SimpleGrammarOptionValues(validatorName: String, grammar: Combinator) : GrammarOptionValue(validatorName, grammar) {
8+
open class SimpleGrammarOptionValues(validatorName: String, grammar: Combinator) : GrammarOptionValue(validatorName, grammar) {
99

1010

1111
companion object {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.Validator
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
5+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
6+
7+
/**
8+
* Validator for Tunnel.IPv6RapidDeploymentPrefix
9+
* C Function: config_parse_6rd_prefix(0)
10+
* Used by Options: Tunnel.IPv6RapidDeploymentPrefix
11+
*
12+
* Validates IPv6 addresses with a non-zero prefix length for 6rd (IPv6 Rapid Deployment).
13+
* Format: IPv6_address/prefix_length where prefix_length must be 1-128.
14+
*/
15+
class ConfigParse6rdPrefixOptionValue : SimpleGrammarOptionValues(
16+
"config_parse_6rd_prefix",
17+
SequenceCombinator(
18+
IPV6_ADDR,
19+
CIDR_SEPARATOR,
20+
IntegerTerminal(1, 129), // Non-zero prefix length: 1-128 inclusive (129 is exclusive upper bound)
21+
EOF()
22+
)
23+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
5+
6+
/**
7+
* Validator for Bond.AdActorSystemPriority
8+
* C Function: config_parse_ad_actor_sys_prio(0)
9+
* Used by Options: Bond.AdActorSystemPriority
10+
*/
11+
class ConfigParseAdActorSysPrioOptionValue : SimpleGrammarOptionValues(
12+
"config_parse_ad_actor_sys_prio",
13+
SequenceCombinator(
14+
IntegerTerminal(1, 65536),
15+
EOF()
16+
)
17+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.Validator
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
5+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
6+
7+
/**
8+
* Validator for Bond.AdUserPortKey
9+
* C Function: config_parse_ad_user_port_key(0)
10+
* Used by Options: Bond.AdUserPortKey
11+
*
12+
* Validates the 802.3ad user defined portion of the port key.
13+
* Accepts a number in the range 0–1023.
14+
*/
15+
class ConfigParseAdUserPortKeyOptionValue : SimpleGrammarOptionValues(
16+
"config_parse_ad_user_port_key",
17+
SequenceCombinator(
18+
IntegerTerminal(0, 1024), // Range 0-1023 (maxExclusive is 1024)
19+
EOF()
20+
)
21+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.Validator
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
5+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
6+
7+
/**
8+
* Validator for Address.RouteMetric
9+
* C Function: config_parse_address_section(ADDRESS_ROUTE_METRIC)
10+
* Used by Options: Address.RouteMetric
11+
*
12+
* Validates unsigned 32-bit integers in the range 0 to 4294967295.
13+
* This represents the metric of the prefix route for the configured IP address.
14+
*/
15+
class ConfigParseAddressSectionOptionValue : SimpleGrammarOptionValues(
16+
"config_parse_address_section",
17+
SequenceCombinator(
18+
IntegerTerminal(0, 4294967296), // 0 to 4294967295 inclusive (max is exclusive)
19+
EOF()
20+
)
21+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.Validator
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
5+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
6+
7+
/**
8+
* Validator for Link.AlternativeNamesPolicy
9+
* C Function: config_parse_alternative_names_policy(0)
10+
* Used by Options: Link.AlternativeNamesPolicy
11+
*/
12+
class ConfigParseAlternativeNamesPolicyOptionValue : SimpleGrammarOptionValues(
13+
"config_parse_alternative_names_policy",
14+
SequenceCombinator(
15+
FlexibleLiteralChoiceTerminal("database", "onboard", "slot", "path", "mac"),
16+
ZeroOrMore(
17+
SequenceCombinator(
18+
WhitespaceTerminal(),
19+
FlexibleLiteralChoiceTerminal("database", "onboard", "slot", "path", "mac")
20+
)
21+
),
22+
EOF()
23+
)
24+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.Validator
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
5+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
6+
7+
/**
8+
* Validator for Bond.ARPIPTargets
9+
* C Function: config_parse_arp_ip_target_address(0)
10+
* Used by Options: Bond.ARPIPTargets
11+
*/
12+
class ConfigParseArpIpTargetAddressOptionValue : SimpleGrammarOptionValues(
13+
"config_parse_arp_ip_target_address",
14+
SequenceCombinator(
15+
IPV4_ADDR,
16+
ZeroOrMore(SequenceCombinator(WhitespaceTerminal(), IPV4_ADDR)),
17+
EOF()
18+
)
19+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.ai
2+
3+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.Validator
4+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.grammar.*
5+
import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.optionvalues.SimpleGrammarOptionValues
6+
7+
/**
8+
* Validator for BareUDP.EtherType
9+
* C Function: config_parse_bare_udp_iftype(0)
10+
* Used by Options: BareUDP.EtherType
11+
*
12+
* Validates the L3 protocol for BareUDP interfaces.
13+
* Valid values: ipv4, ipv6, mpls-uc, mpls-mc
14+
*/
15+
class ConfigParseBareUdpIftypeOptionValue : SimpleGrammarOptionValues(
16+
"config_parse_bare_udp_iftype",
17+
SequenceCombinator(
18+
FlexibleLiteralChoiceTerminal("ipv4", "ipv6", "mpls-uc", "mpls-mc"),
19+
EOF()
20+
)
21+
)

0 commit comments

Comments
 (0)