diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
commit | 0b6210cd37b68b94252cb798598b12974a20e1c1 (patch) | |
tree | e371686554a877842d95aa94f100bee552ff2a8e /llparse-frontend/src/code | |
parent | Initial commit. (diff) | |
download | node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip |
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'llparse-frontend/src/code')
-rw-r--r-- | llparse-frontend/src/code/and.ts | 8 | ||||
-rw-r--r-- | llparse-frontend/src/code/base.ts | 8 | ||||
-rw-r--r-- | llparse-frontend/src/code/external.ts | 7 | ||||
-rw-r--r-- | llparse-frontend/src/code/field-value.ts | 13 | ||||
-rw-r--r-- | llparse-frontend/src/code/field.ts | 8 | ||||
-rw-r--r-- | llparse-frontend/src/code/index.ts | 15 | ||||
-rw-r--r-- | llparse-frontend/src/code/is-equal.ts | 9 | ||||
-rw-r--r-- | llparse-frontend/src/code/load.ts | 7 | ||||
-rw-r--r-- | llparse-frontend/src/code/match.ts | 7 | ||||
-rw-r--r-- | llparse-frontend/src/code/mul-add.ts | 26 | ||||
-rw-r--r-- | llparse-frontend/src/code/or.ts | 8 | ||||
-rw-r--r-- | llparse-frontend/src/code/span.ts | 7 | ||||
-rw-r--r-- | llparse-frontend/src/code/store.ts | 7 | ||||
-rw-r--r-- | llparse-frontend/src/code/test.ts | 8 | ||||
-rw-r--r-- | llparse-frontend/src/code/update.ts | 8 | ||||
-rw-r--r-- | llparse-frontend/src/code/value.ts | 7 |
16 files changed, 153 insertions, 0 deletions
diff --git a/llparse-frontend/src/code/and.ts b/llparse-frontend/src/code/and.ts new file mode 100644 index 0000000..54dc5fd --- /dev/null +++ b/llparse-frontend/src/code/and.ts @@ -0,0 +1,8 @@ +import { toCacheKey } from '../utils'; +import { FieldValue } from './field-value'; + +export class And extends FieldValue { + constructor(name: string, field: string, value: number) { + super('match', `and_${field}_${toCacheKey(value)}`, name, field, value); + } +} diff --git a/llparse-frontend/src/code/base.ts b/llparse-frontend/src/code/base.ts new file mode 100644 index 0000000..cde4b6d --- /dev/null +++ b/llparse-frontend/src/code/base.ts @@ -0,0 +1,8 @@ +export type Signature = 'match' | 'value' | 'span'; + +export abstract class Code { + constructor(public readonly signature: Signature, + public readonly cacheKey: string, + public readonly name: string) { + } +} diff --git a/llparse-frontend/src/code/external.ts b/llparse-frontend/src/code/external.ts new file mode 100644 index 0000000..f4254c1 --- /dev/null +++ b/llparse-frontend/src/code/external.ts @@ -0,0 +1,7 @@ +import { Code, Signature } from './base'; + +export abstract class External extends Code { + constructor(signature: Signature, name: string) { + super(signature, 'external_' + name, name); + } +} diff --git a/llparse-frontend/src/code/field-value.ts b/llparse-frontend/src/code/field-value.ts new file mode 100644 index 0000000..1c7c109 --- /dev/null +++ b/llparse-frontend/src/code/field-value.ts @@ -0,0 +1,13 @@ +import * as assert from 'assert'; + +import { Signature } from './base'; +import { Field } from './field'; + +export abstract class FieldValue extends Field { + constructor(signature: Signature, cacheKey: string, name: string, + field: string, public readonly value: number) { + super(signature, cacheKey, name, field); + + assert.strictEqual(value, value | 0, 'FieldValue `value` must be integer'); + } +} diff --git a/llparse-frontend/src/code/field.ts b/llparse-frontend/src/code/field.ts new file mode 100644 index 0000000..c60b8ef --- /dev/null +++ b/llparse-frontend/src/code/field.ts @@ -0,0 +1,8 @@ +import { Code, Signature } from './base'; + +export abstract class Field extends Code { + constructor(signature: Signature, cacheKey: string, name: string, + public readonly field: string) { + super(signature, cacheKey, name); + } +} diff --git a/llparse-frontend/src/code/index.ts b/llparse-frontend/src/code/index.ts new file mode 100644 index 0000000..c7d5c69 --- /dev/null +++ b/llparse-frontend/src/code/index.ts @@ -0,0 +1,15 @@ +export * from './and'; +export * from './base'; +export * from './external'; +export * from './field-value'; +export * from './field'; +export * from './is-equal'; +export * from './load'; +export * from './match'; +export * from './mul-add'; +export * from './or'; +export * from './span'; +export * from './store'; +export * from './test'; +export * from './update'; +export * from './value'; diff --git a/llparse-frontend/src/code/is-equal.ts b/llparse-frontend/src/code/is-equal.ts new file mode 100644 index 0000000..16a2ee2 --- /dev/null +++ b/llparse-frontend/src/code/is-equal.ts @@ -0,0 +1,9 @@ +import { toCacheKey } from '../utils'; +import { FieldValue } from './field-value'; + +export class IsEqual extends FieldValue { + constructor(name: string, field: string, value: number) { + super('match', `is_equal_${field}_${toCacheKey(value)}`, name, field, + value); + } +} diff --git a/llparse-frontend/src/code/load.ts b/llparse-frontend/src/code/load.ts new file mode 100644 index 0000000..76b715a --- /dev/null +++ b/llparse-frontend/src/code/load.ts @@ -0,0 +1,7 @@ +import { Field } from './field'; + +export class Load extends Field { + constructor(name: string, field: string) { + super('match', `load_${field}`, name, field); + } +} diff --git a/llparse-frontend/src/code/match.ts b/llparse-frontend/src/code/match.ts new file mode 100644 index 0000000..819d2af --- /dev/null +++ b/llparse-frontend/src/code/match.ts @@ -0,0 +1,7 @@ +import { External } from './external'; + +export class Match extends External { + constructor(name: string) { + super('match', name); + } +} diff --git a/llparse-frontend/src/code/mul-add.ts b/llparse-frontend/src/code/mul-add.ts new file mode 100644 index 0000000..c99be0d --- /dev/null +++ b/llparse-frontend/src/code/mul-add.ts @@ -0,0 +1,26 @@ +import { toCacheKey } from '../utils'; +import { Field } from './field'; + +export interface IMulAddOptions { + readonly base: number; + readonly max?: number; + readonly signed: boolean; +} + +function toOptionsKey(options: IMulAddOptions): string { + let res = `base_${toCacheKey(options.base)}`; + if (options.max !== undefined) { + res += `_max_${toCacheKey(options.max)}`; + } + if (options.signed !== undefined) { + res += `_signed_${toCacheKey(options.signed)}`; + } + return res; +} + +export class MulAdd extends Field { + constructor(name: string, field: string, + public readonly options: IMulAddOptions) { + super('value', `mul_add_${field}_${toOptionsKey(options)}`, name, field); + } +} diff --git a/llparse-frontend/src/code/or.ts b/llparse-frontend/src/code/or.ts new file mode 100644 index 0000000..2328a9f --- /dev/null +++ b/llparse-frontend/src/code/or.ts @@ -0,0 +1,8 @@ +import { toCacheKey } from '../utils'; +import { FieldValue } from './field-value'; + +export class Or extends FieldValue { + constructor(name: string, field: string, value: number) { + super('match', `or_${field}_${toCacheKey(value)}`, name, field, value); + } +} diff --git a/llparse-frontend/src/code/span.ts b/llparse-frontend/src/code/span.ts new file mode 100644 index 0000000..6241e03 --- /dev/null +++ b/llparse-frontend/src/code/span.ts @@ -0,0 +1,7 @@ +import { External } from './external'; + +export class Span extends External { + constructor(name: string) { + super('span', name); + } +} diff --git a/llparse-frontend/src/code/store.ts b/llparse-frontend/src/code/store.ts new file mode 100644 index 0000000..c2cb9ea --- /dev/null +++ b/llparse-frontend/src/code/store.ts @@ -0,0 +1,7 @@ +import { Field } from './field'; + +export class Store extends Field { + constructor(name: string, field: string) { + super('value', `store_${field}`, name, field); + } +} diff --git a/llparse-frontend/src/code/test.ts b/llparse-frontend/src/code/test.ts new file mode 100644 index 0000000..21339e9 --- /dev/null +++ b/llparse-frontend/src/code/test.ts @@ -0,0 +1,8 @@ +import { toCacheKey } from '../utils'; +import { FieldValue } from './field-value'; + +export class Test extends FieldValue { + constructor(name: string, field: string, value: number) { + super('match', `test_${field}_${toCacheKey(value)}`, name, field, value); + } +} diff --git a/llparse-frontend/src/code/update.ts b/llparse-frontend/src/code/update.ts new file mode 100644 index 0000000..5fa5eec --- /dev/null +++ b/llparse-frontend/src/code/update.ts @@ -0,0 +1,8 @@ +import { toCacheKey } from '../utils'; +import { FieldValue } from './field-value'; + +export class Update extends FieldValue { + constructor(name: string, field: string, value: number) { + super('match', `update_${field}_${toCacheKey(value)}`, name, field, value); + } +} diff --git a/llparse-frontend/src/code/value.ts b/llparse-frontend/src/code/value.ts new file mode 100644 index 0000000..4f32ae8 --- /dev/null +++ b/llparse-frontend/src/code/value.ts @@ -0,0 +1,7 @@ +import { External } from './external'; + +export class Value extends External { + constructor(name: string) { + super('value', name); + } +} |