42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
/**
|
|
* Matches a single dot variable method reference inside an angle bracket identifier.
|
|
*
|
|
* Used to detect primitive method references such as `expiry.toIso8601`.
|
|
*
|
|
* For example `expiry.toIso8601` matches with base expiry and method toIso8601.
|
|
* `requestedSatoshis` does not match because it has no method.
|
|
* `key.schnorr_signature.all_outputs` does not match because it has more than one dot.
|
|
*/
|
|
export const CASHASSEMBLY_VARIABLE_METHOD_REFERENCE_PATTERN = /^([^.]+)\.([^.]+)$/;
|
|
|
|
/**
|
|
* Character count of the `$(` evaluation opener, which is two characters long.
|
|
*
|
|
* Adding this length moves the read position to the first character after that sequence so scanning
|
|
* starts on the evaluation contents rather than on the opening parenthesis.
|
|
*/
|
|
export const CASHASSEMBLY_EVALUATION_START_LENGTH = 2;
|
|
|
|
/**
|
|
* Character count of the `//` and `/*` comment openers, which are both two characters long.
|
|
*
|
|
* Adding this length moves the read position to the first character after that sequence so the '*'
|
|
* of a block comment opener cannot be reused as the '*' of its closer.
|
|
*/
|
|
export const CASHASSEMBLY_COMMENT_START_LENGTH = 2;
|
|
|
|
/**
|
|
* Character count of the block comment closer, which is two characters long.
|
|
*
|
|
* Adding this length moves the read position to the first character after that sequence so the
|
|
* closing slash cannot pair with the next character and open another comment.
|
|
*/
|
|
export const CASHASSEMBLY_BLOCK_COMMENT_END_LENGTH = 2;
|
|
|
|
/**
|
|
* `$()` with nothing between the parentheses.
|
|
*
|
|
* Callers use this to detect an evaluation that has no contents to compile.
|
|
*/
|
|
export const EMPTY_CASHASSEMBLY_EVALUATION = '$()';
|