PtcRunner.Lisp.Runtime.Interop (PtcRunner v0.11.0)

Copy Markdown View Source

Simulated Java interop for PTC-Lisp.

Summary

Functions

Simulates System/currentTimeMillis.

Simulates .contains method on strings. Delegates to String.contains?/2.

Simulates .endsWith method on strings. Delegates to String.ends_with?/2.

Simulates .getTime method on java.util.Date.

Simulates .indexOf method on strings. Returns the grapheme index of the first occurrence of substring, or -1 if not found.

Simulates .indexOf method on strings with a starting position. Delegates to Runtime.String.index_of/3 and converts nil to -1.

Simulates .isAfter method on Date and DateTime objects. Returns true if the first argument comes strictly after the second. Both arguments must be the same type (Date/Date or DateTime/DateTime).

Simulates .isBefore method on Date and DateTime objects. Returns true if the first argument comes strictly before the second. Both arguments must be the same type (Date/Date or DateTime/DateTime).

Simulates .lastIndexOf method on strings. Delegates to Runtime.String.last_index_of/2 and converts nil to -1.

Simulates .length method on strings. Returns grapheme count (matches Java's length() for the BMP and the PTC-Lisp count builtin). Delegates to String.length/1.

Simulates .startsWith method on strings. Delegates to String.starts_with?/2.

Simulates .substring method on strings.

Simulates .toLowerCase method on strings. Delegates to String.downcase/1.

Simulates .toUpperCase method on strings. Delegates to String.upcase/1.

Constructs a java.util.Date. If no args, returns now. If one arg (number or string), returns date accordingly.

Parse an ISO-8601 temporal string. Backs the parse builtin (also reachable as LocalDate/parse).

Functions

current_time_millis()

Simulates System/currentTimeMillis.

dot_contains(s, substring)

Simulates .contains method on strings. Delegates to String.contains?/2.

dot_ends_with(s, suffix)

Simulates .endsWith method on strings. Delegates to String.ends_with?/2.

dot_get_time(dt)

Simulates .getTime method on java.util.Date.

dot_index_of(s, substring)

Simulates .indexOf method on strings. Returns the grapheme index of the first occurrence of substring, or -1 if not found.

Delegates to Runtime.String.index_of/2 and converts nil to -1 for Java semantics. Uses grapheme indices (not byte offsets) for compatibility with subs and other PTC-Lisp string functions.

dot_index_of(s, substring, from)

Simulates .indexOf method on strings with a starting position. Delegates to Runtime.String.index_of/3 and converts nil to -1.

dot_is_after(a, b)

Simulates .isAfter method on Date and DateTime objects. Returns true if the first argument comes strictly after the second. Both arguments must be the same type (Date/Date or DateTime/DateTime).

dot_is_before(a, b)

Simulates .isBefore method on Date and DateTime objects. Returns true if the first argument comes strictly before the second. Both arguments must be the same type (Date/Date or DateTime/DateTime).

dot_last_index_of(s, substring)

Simulates .lastIndexOf method on strings. Delegates to Runtime.String.last_index_of/2 and converts nil to -1.

dot_length(s)

Simulates .length method on strings. Returns grapheme count (matches Java's length() for the BMP and the PTC-Lisp count builtin). Delegates to String.length/1.

dot_minus_days(date, days)

dot_plus_days(date, days)

dot_starts_with(s, prefix)

Simulates .startsWith method on strings. Delegates to String.starts_with?/2.

dot_substring(s, start)

Simulates .substring method on strings.

  • (.substring s start) returns the suffix from grapheme index start.
  • (.substring s start end) returns graphemes in [start, end).

Indices are grapheme-based (matches .indexOf / .length semantics).

dot_substring(s, start, stop)

dot_to_days(other)

dot_to_epoch_day(date)

dot_to_lower_case(s)

Simulates .toLowerCase method on strings. Delegates to String.downcase/1.

dot_to_millis(other)

dot_to_upper_case(s)

Simulates .toUpperCase method on strings. Delegates to String.upcase/1.

duration_between(start_dt, end_dt)

java_util_date()

Constructs a java.util.Date. If no args, returns now. If one arg (number or string), returns date accordingly.

java_util_date(ts)

parse_temporal(s)

Parse an ISO-8601 temporal string. Backs the parse builtin (also reachable as LocalDate/parse).

Dispatches on the string shape:

  • "YYYY-MM-DD"Date
  • a string carrying a time component (...T...) → DateTime. An offset (Z, +02:00, …) is honoured; an offsetless ...T... value is treated as UTC. .isBefore / .isAfter / .getTime work on the result.

This is a deliberate divergence from Java's LocalDate.parse, which rejects anything with a time component — returning a DateTime is far more useful for an LLM that just wants to compare two timestamps.