diff --git a/src/scripts/data/java/theict/chunks.json b/src/scripts/data/java/theict/chunks.json index 2db9a79..8223eab 100644 --- a/src/scripts/data/java/theict/chunks.json +++ b/src/scripts/data/java/theict/chunks.json @@ -7,11 +7,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int timestamp;\n String event;\n\n LogEntry(int timestamp, String event) {\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by timestamp ascending.\n // If timestamps are equal, sort by event alphabetically.\n {TASK 1: COMPARE TO}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"timestamp:event\".\n // Create a LogEntry for each and return the list.\n {TASK 2: PARSE ENTRIES}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"[timestamp] event\".\n // Return the full string (no trailing newline).\n {TASK 3: SORT AND FORMAT}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", + "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int timestamp;\n String event;\n\n LogEntry(int timestamp, String event) {\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by timestamp ascending.\n // If timestamps are equal, sort by event alphabetically.\n {{{task-1-compare-to}}}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"timestamp:event\".\n // Create a LogEntry for each and return the list.\n {{{task-2-parse-entries}}}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"[timestamp] event\".\n // Return the full string (no trailing newline).\n {{{task-3-sort-and-format}}}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", "snippets": { - "TASK 1: COMPARE TO": "public int compareTo(LogEntry other) {\n if (this.timestamp != other.timestamp) {\n return this.timestamp - other.timestamp;\n }\n return this.event.compareTo(other.event);\n}", - "TASK 2: PARSE ENTRIES": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int ts = Integer.parseInt(parts[0]);\n String ev = parts[1];\n list.add(new LogEntry(ts, ev));\n}\nreturn list;", - "TASK 3: SORT AND FORMAT": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"[\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" + "task-1-compare-to": "public int compareTo(LogEntry other) {\n if (this.timestamp != other.timestamp) {\n return this.timestamp - other.timestamp;\n }\n return this.event.compareTo(other.event);\n}", + "task-2-parse-entries": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int ts = Integer.parseInt(parts[0]);\n String ev = parts[1];\n list.add(new LogEntry(ts, ev));\n}\nreturn list;", + "task-3-sort-and-format": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"[\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" } } }, @@ -28,11 +28,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int severity;\n int timestamp;\n String event;\n\n LogEntry(int severity, int timestamp, String event) {\n this.severity = severity;\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by severity DESCENDING (highest first).\n // If severity is equal, sort by timestamp ASCENDING.\n {TASK 1: COMPARE TO}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"severity:timestamp:event\".\n // Create a LogEntry for each and return the list.\n {TASK 2: PARSE ENTRIES}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"[severity|timestamp] event\".\n // Return the full string (no trailing newline).\n {TASK 3: SORT AND FORMAT}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", + "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int severity;\n int timestamp;\n String event;\n\n LogEntry(int severity, int timestamp, String event) {\n this.severity = severity;\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by severity DESCENDING (highest first).\n // If severity is equal, sort by timestamp ASCENDING.\n {{{task-1-compare-to}}}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"severity:timestamp:event\".\n // Create a LogEntry for each and return the list.\n {{{task-2-parse-entries}}}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"[severity|timestamp] event\".\n // Return the full string (no trailing newline).\n {{{task-3-sort-and-format}}}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", "snippets": { - "TASK 1: COMPARE TO": "public int compareTo(LogEntry other) {\n if (this.severity != other.severity) {\n return other.severity - this.severity;\n }\n return this.timestamp - other.timestamp;\n}", - "TASK 2: PARSE ENTRIES": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int sev = Integer.parseInt(parts[0]);\n int ts = Integer.parseInt(parts[1]);\n String ev = parts[2];\n list.add(new LogEntry(sev, ts, ev));\n}\nreturn list;", - "TASK 3: SORT AND FORMAT": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"[\").append(e.severity).append(\"|\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" + "task-1-compare-to": "public int compareTo(LogEntry other) {\n if (this.severity != other.severity) {\n return other.severity - this.severity;\n }\n return this.timestamp - other.timestamp;\n}", + "task-2-parse-entries": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int sev = Integer.parseInt(parts[0]);\n int ts = Integer.parseInt(parts[1]);\n String ev = parts[2];\n list.add(new LogEntry(sev, ts, ev));\n}\nreturn list;", + "task-3-sort-and-format": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"[\").append(e.severity).append(\"|\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" } } }, @@ -49,11 +49,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int timestamp;\n String event;\n\n LogEntry(int timestamp, String event) {\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by event name alphabetically.\n // If event names are equal, sort by timestamp DESCENDING (latest first).\n {TASK 1: COMPARE TO}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"timestamp:event\".\n // Create a LogEntry for each and return the list.\n {TASK 2: PARSE ENTRIES}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"[timestamp] event\".\n // Return the full string (no trailing newline).\n {TASK 3: SORT AND FORMAT}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", + "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int timestamp;\n String event;\n\n LogEntry(int timestamp, String event) {\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by event name alphabetically.\n // If event names are equal, sort by timestamp DESCENDING (latest first).\n {{{task-1-compare-to}}}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"timestamp:event\".\n // Create a LogEntry for each and return the list.\n {{{task-2-parse-entries}}}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"[timestamp] event\".\n // Return the full string (no trailing newline).\n {{{task-3-sort-and-format}}}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", "snippets": { - "TASK 1: COMPARE TO": "public int compareTo(LogEntry other) {\n int cmp = this.event.compareTo(other.event);\n if (cmp != 0) return cmp;\n return other.timestamp - this.timestamp;\n}", - "TASK 2: PARSE ENTRIES": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int ts = Integer.parseInt(parts[0]);\n String ev = parts[1];\n list.add(new LogEntry(ts, ev));\n}\nreturn list;", - "TASK 3: SORT AND FORMAT": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"[\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" + "task-1-compare-to": "public int compareTo(LogEntry other) {\n int cmp = this.event.compareTo(other.event);\n if (cmp != 0) return cmp;\n return other.timestamp - this.timestamp;\n}", + "task-2-parse-entries": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int ts = Integer.parseInt(parts[0]);\n String ev = parts[1];\n list.add(new LogEntry(ts, ev));\n}\nreturn list;", + "task-3-sort-and-format": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"[\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" } } }, @@ -70,11 +70,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int timestamp;\n String event;\n\n LogEntry(int timestamp, String event) {\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by timestamp ascending.\n // If timestamps are equal, sort by event alphabetically.\n {TASK 1: COMPARE TO}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"timestamp:event\".\n // Create a LogEntry for each and return the list.\n {TASK 2: PARSE ENTRIES}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"#index [timestamp] event\"\n // where index starts at 1.\n // Return the full string (no trailing newline).\n {TASK 3: SORT AND FORMAT}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", + "template_code": "import java.util.*;\n\npublic class IntrusionLogger {\n\n static class LogEntry implements Comparable {\n int timestamp;\n String event;\n\n LogEntry(int timestamp, String event) {\n this.timestamp = timestamp;\n this.event = event;\n }\n\n // TASK 1: Implement compareTo.\n // Sort by timestamp ascending.\n // If timestamps are equal, sort by event alphabetically.\n {{{task-1-compare-to}}}\n }\n\n public static ArrayList buildLog(String[] lines) {\n // TASK 2: Parse each line formatted as \"timestamp:event\".\n // Create a LogEntry for each and return the list.\n {{{task-2-parse-entries}}}\n }\n\n public static String formatReport(ArrayList log) {\n // TASK 3: Sort the log using Collections.sort, then build a string.\n // Each entry on its own line as \"#index [timestamp] event\"\n // where index starts at 1.\n // Return the full string (no trailing newline).\n {{{task-3-sort-and-format}}}\n }\n\n public static void main(String[] args) {\n Scanner sc = new Scanner(System.in);\n int n = Integer.parseInt(sc.nextLine().trim());\n String[] lines = new String[n];\n for (int i = 0; i < n; i++) lines[i] = sc.nextLine().trim();\n ArrayList log = buildLog(lines);\n System.out.println(formatReport(log));\n sc.close();\n }\n}", "snippets": { - "TASK 1: COMPARE TO": "public int compareTo(LogEntry other) {\n if (this.timestamp != other.timestamp) {\n return this.timestamp - other.timestamp;\n }\n return this.event.compareTo(other.event);\n}", - "TASK 2: PARSE ENTRIES": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int ts = Integer.parseInt(parts[0]);\n String ev = parts[1];\n list.add(new LogEntry(ts, ev));\n}\nreturn list;", - "TASK 3: SORT AND FORMAT": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"#\").append(i + 1).append(\" [\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" + "task-1-compare-to": "public int compareTo(LogEntry other) {\n if (this.timestamp != other.timestamp) {\n return this.timestamp - other.timestamp;\n }\n return this.event.compareTo(other.event);\n}", + "task-2-parse-entries": "ArrayList list = new ArrayList<>();\nfor (String line : lines) {\n String[] parts = line.split(\":\");\n int ts = Integer.parseInt(parts[0]);\n String ev = parts[1];\n list.add(new LogEntry(ts, ev));\n}\nreturn list;", + "task-3-sort-and-format": "Collections.sort(log);\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < log.size(); i++) {\n LogEntry e = log.get(i);\n sb.append(\"#\").append(i + 1).append(\" [\").append(e.timestamp).append(\"] \").append(e.event);\n if (i < log.size() - 1) sb.append(\"\\n\");\n}\nreturn sb.toString();" } } }, @@ -91,11 +91,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int dropped = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet) {\n // TASK 1: If queue size < capacity, add packet to the end and return \"QUEUED\".\n // Otherwise, increment dropped counter and return \"DROPPED\".\n {TASK 1: ENQUEUE}\n }\n\n public static String dequeue() {\n // TASK 2: Remove and return the front packet.\n // If queue is empty, return \"IDLE\".\n {TASK 2: DEQUEUE}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|DROPPED:count\"\n {TASK 3: STATUS}\n }\n\n public static void main(String[] args) {\n init(3);\n System.out.println(enqueue(\"PKT-A\"));\n System.out.println(enqueue(\"PKT-B\"));\n System.out.println(enqueue(\"PKT-C\"));\n System.out.println(enqueue(\"PKT-D\"));\n System.out.println(status());\n System.out.println(dequeue());\n System.out.println(status());\n }\n}", + "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int dropped = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet) {\n // TASK 1: If queue size < capacity, add packet to the end and return \"QUEUED\".\n // Otherwise, increment dropped counter and return \"DROPPED\".\n {{{task-1-enqueue}}}\n }\n\n public static String dequeue() {\n // TASK 2: Remove and return the front packet.\n // If queue is empty, return \"IDLE\".\n {{{task-2-dequeue}}}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|DROPPED:count\"\n {{{task-3-status}}}\n }\n\n public static void main(String[] args) {\n init(3);\n System.out.println(enqueue(\"PKT-A\"));\n System.out.println(enqueue(\"PKT-B\"));\n System.out.println(enqueue(\"PKT-C\"));\n System.out.println(enqueue(\"PKT-D\"));\n System.out.println(status());\n System.out.println(dequeue());\n System.out.println(status());\n }\n}", "snippets": { - "TASK 1: ENQUEUE": "if (queue.size() < capacity) {\n queue.addLast(packet);\n return \"QUEUED\";\n} else {\n dropped++;\n return \"DROPPED\";\n}", - "TASK 2: DEQUEUE": "if (queue.isEmpty()) return \"IDLE\";\nreturn queue.removeFirst();", - "TASK 3: STATUS": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|DROPPED:\" + dropped;" + "task-1-enqueue": "if (queue.size() < capacity) {\n queue.addLast(packet);\n return \"QUEUED\";\n} else {\n dropped++;\n return \"DROPPED\";\n}", + "task-2-dequeue": "if (queue.isEmpty()) return \"IDLE\";\nreturn queue.removeFirst();", + "task-3-status": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|DROPPED:\" + dropped;" } } }, @@ -112,11 +112,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int processed = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet) {\n // TASK 1: If queue size < capacity, add packet to the end and return \"QUEUED\".\n // Otherwise, return \"DROPPED\".\n {TASK 1: ENQUEUE}\n }\n\n public static String dequeue() {\n // TASK 2: Remove and return the front packet, and increment processed counter.\n // If queue is empty, return \"IDLE\" (do NOT increment processed).\n {TASK 2: DEQUEUE}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|PROCESSED:count\"\n {TASK 3: STATUS}\n }\n\n public static void main(String[] args) {\n init(3);\n System.out.println(enqueue(\"PKT-A\"));\n System.out.println(enqueue(\"PKT-B\"));\n System.out.println(enqueue(\"PKT-C\"));\n System.out.println(dequeue());\n System.out.println(dequeue());\n System.out.println(status());\n }\n}", + "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int processed = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet) {\n // TASK 1: If queue size < capacity, add packet to the end and return \"QUEUED\".\n // Otherwise, return \"DROPPED\".\n {{{task-1-enqueue}}}\n }\n\n public static String dequeue() {\n // TASK 2: Remove and return the front packet, and increment processed counter.\n // If queue is empty, return \"IDLE\" (do NOT increment processed).\n {{{task-2-dequeue}}}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|PROCESSED:count\"\n {{{task-3-status}}}\n }\n\n public static void main(String[] args) {\n init(3);\n System.out.println(enqueue(\"PKT-A\"));\n System.out.println(enqueue(\"PKT-B\"));\n System.out.println(enqueue(\"PKT-C\"));\n System.out.println(dequeue());\n System.out.println(dequeue());\n System.out.println(status());\n }\n}", "snippets": { - "TASK 1: ENQUEUE": "if (queue.size() < capacity) {\n queue.addLast(packet);\n return \"QUEUED\";\n} else {\n return \"DROPPED\";\n}", - "TASK 2: DEQUEUE": "if (queue.isEmpty()) return \"IDLE\";\nprocessed++;\nreturn queue.removeFirst();", - "TASK 3: STATUS": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|PROCESSED:\" + processed;" + "task-1-enqueue": "if (queue.size() < capacity) {\n queue.addLast(packet);\n return \"QUEUED\";\n} else {\n return \"DROPPED\";\n}", + "task-2-dequeue": "if (queue.isEmpty()) return \"IDLE\";\nprocessed++;\nreturn queue.removeFirst();", + "task-3-status": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|PROCESSED:\" + processed;" } } }, @@ -133,11 +133,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int dropped = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet, boolean priority) {\n // TASK 1: If queue size < capacity:\n // - If priority is true, add packet to the FRONT and return \"PRIORITY_QUEUED\".\n // - If priority is false, add packet to the END and return \"QUEUED\".\n // If queue is full, increment dropped and return \"DROPPED\".\n {TASK 1: ENQUEUE}\n }\n\n public static String dequeue() {\n // TASK 2: Remove and return the front packet.\n // If queue is empty, return \"IDLE\".\n {TASK 2: DEQUEUE}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|DROPPED:count\"\n {TASK 3: STATUS}\n }\n\n public static void main(String[] args) {\n init(4);\n System.out.println(enqueue(\"PKT-A\", false));\n System.out.println(enqueue(\"PKT-B\", false));\n System.out.println(enqueue(\"VIP-1\", true));\n System.out.println(dequeue());\n System.out.println(status());\n }\n}", + "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int dropped = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet, boolean priority) {\n // TASK 1: If queue size < capacity:\n // - If priority is true, add packet to the FRONT and return \"PRIORITY_QUEUED\".\n // - If priority is false, add packet to the END and return \"QUEUED\".\n // If queue is full, increment dropped and return \"DROPPED\".\n {{{task-1-enqueue}}}\n }\n\n public static String dequeue() {\n // TASK 2: Remove and return the front packet.\n // If queue is empty, return \"IDLE\".\n {{{task-2-dequeue}}}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|DROPPED:count\"\n {{{task-3-status}}}\n }\n\n public static void main(String[] args) {\n init(4);\n System.out.println(enqueue(\"PKT-A\", false));\n System.out.println(enqueue(\"PKT-B\", false));\n System.out.println(enqueue(\"VIP-1\", true));\n System.out.println(dequeue());\n System.out.println(status());\n }\n}", "snippets": { - "TASK 1: ENQUEUE": "if (queue.size() < capacity) {\n if (priority) {\n queue.addFirst(packet);\n return \"PRIORITY_QUEUED\";\n } else {\n queue.addLast(packet);\n return \"QUEUED\";\n }\n} else {\n dropped++;\n return \"DROPPED\";\n}", - "TASK 2: DEQUEUE": "if (queue.isEmpty()) return \"IDLE\";\nreturn queue.removeFirst();", - "TASK 3: STATUS": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|DROPPED:\" + dropped;" + "task-1-enqueue": "if (queue.size() < capacity) {\n if (priority) {\n queue.addFirst(packet);\n return \"PRIORITY_QUEUED\";\n } else {\n queue.addLast(packet);\n return \"QUEUED\";\n }\n} else {\n dropped++;\n return \"DROPPED\";\n}", + "task-2-dequeue": "if (queue.isEmpty()) return \"IDLE\";\nreturn queue.removeFirst();", + "task-3-status": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|DROPPED:\" + dropped;" } } }, @@ -154,11 +154,11 @@ "templates": { "java": { "name": "Java Template", - "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int totalEnqueued = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet) {\n // TASK 1: If queue size < capacity, add packet to the end,\n // increment totalEnqueued, and return \"QUEUED\".\n // Otherwise, return \"DROPPED\" (do NOT increment totalEnqueued).\n {TASK 1: ENQUEUE}\n }\n\n public static String peek() {\n // TASK 2: Return the front packet WITHOUT removing it.\n // If queue is empty, return \"IDLE\".\n {TASK 2: PEEK}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|TOTAL:totalEnqueued\"\n {TASK 3: STATUS}\n }\n\n public static void main(String[] args) {\n init(2);\n System.out.println(enqueue(\"PKT-A\"));\n System.out.println(enqueue(\"PKT-B\"));\n System.out.println(enqueue(\"PKT-C\"));\n System.out.println(peek());\n System.out.println(status());\n }\n}", + "template_code": "import java.util.LinkedList;\n\npublic class TrafficShaper {\n\n static LinkedList queue = new LinkedList<>();\n static int capacity;\n static int totalEnqueued = 0;\n\n public static void init(int cap) { capacity = cap; }\n\n public static String enqueue(String packet) {\n // TASK 1: If queue size < capacity, add packet to the end,\n // increment totalEnqueued, and return \"QUEUED\".\n // Otherwise, return \"DROPPED\" (do NOT increment totalEnqueued).\n {{{task-1-enqueue}}}\n }\n\n public static String peek() {\n // TASK 2: Return the front packet WITHOUT removing it.\n // If queue is empty, return \"IDLE\".\n {{{task-2-peek}}}\n }\n\n public static String status() {\n // TASK 3: Return \"SIZE:current/capacity|TOTAL:totalEnqueued\"\n {{{task-3-status}}}\n }\n\n public static void main(String[] args) {\n init(2);\n System.out.println(enqueue(\"PKT-A\"));\n System.out.println(enqueue(\"PKT-B\"));\n System.out.println(enqueue(\"PKT-C\"));\n System.out.println(peek());\n System.out.println(status());\n }\n}", "snippets": { - "TASK 1: ENQUEUE": "if (queue.size() < capacity) {\n queue.addLast(packet);\n totalEnqueued++;\n return \"QUEUED\";\n} else {\n return \"DROPPED\";\n}", - "TASK 2: PEEK": "if (queue.isEmpty()) return \"IDLE\";\nreturn queue.getFirst();", - "TASK 3: STATUS": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|TOTAL:\" + totalEnqueued;" + "task-1-enqueue": "if (queue.size() < capacity) {\n queue.addLast(packet);\n totalEnqueued++;\n return \"QUEUED\";\n} else {\n return \"DROPPED\";\n}", + "task-2-peek": "if (queue.isEmpty()) return \"IDLE\";\nreturn queue.getFirst();", + "task-3-status": "return \"SIZE:\" + queue.size() + \"/\" + capacity + \"|TOTAL:\" + totalEnqueued;" } } }, @@ -167,4 +167,4 @@ "output": "QUEUED\nQUEUED\nDROPPED\nPKT-A\nSIZE:2/2|TOTAL:2" } } -] +] \ No newline at end of file diff --git a/src/services/chunk_service.py b/src/services/chunk_service.py index c756591..5e095c7 100644 --- a/src/services/chunk_service.py +++ b/src/services/chunk_service.py @@ -23,12 +23,12 @@ def _process_chunk(self, chunk): tc = t_dict.get("template_code") if tc: - parts = re.split(r'(\{{3}\s*\w+\s*\}{3})', tc) + parts = re.split(r'(\{{3}\s*[\w-]+\s*\}{3})', tc) processed_list = [] current_buffer = "" for part in parts: - match = re.match(r'\{{3}\s*(\w+)\s*\}{3}', part) + match = re.match(r'\{{3}\s*([\w-]+)\s*\}{3}', part) if match: key_name = match.group(1) comment_str = f"\n{cmt_pat.format(key_name)}"