Enable CI for Junit tests (#7436)
[cvc5.git] / src / api / java / jni / grammar.cpp
1 /******************************************************************************
2 * Top contributors (to current version):
3 * Mudathir Mohamed
4 *
5 * This file is part of the cvc5 project.
6 *
7 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8 * in the top-level source directory and their institutional affiliations.
9 * All rights reserved. See the file COPYING in the top-level source
10 * directory for licensing information.
11 * ****************************************************************************
12 *
13 * The cvc5 Java API.
14 */
15
16 #include "api/cpp/cvc5.h"
17 #include "api_utilities.h"
18 #include "io_github_cvc5_api_Grammar.h"
19
20 using namespace cvc5::api;
21
22 /*
23 * Class: io_github_cvc5_api_Grammar
24 * Method: copyGrammar
25 * Signature: (J)J
26 */
27 JNIEXPORT jlong JNICALL
28 Java_io_github_cvc5_api_Grammar_copyGrammar(JNIEnv* env, jclass, jlong pointer)
29 {
30 CVC5_JAVA_API_TRY_CATCH_BEGIN;
31 Grammar* current = reinterpret_cast<Grammar*>(pointer);
32 Grammar* retPointer = new Grammar(*current);
33 return reinterpret_cast<jlong>(retPointer);
34 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env, 0);
35 }
36
37 /*
38 * Class: io_github_cvc5_api_Grammar
39 * Method: deletePointer
40 * Signature: (J)V
41 */
42 JNIEXPORT void JNICALL
43 Java_io_github_cvc5_api_Grammar_deletePointer(JNIEnv*, jobject, jlong pointer)
44 {
45 delete reinterpret_cast<Grammar*>(pointer);
46 }
47
48 /*
49 * Class: io_github_cvc5_api_Grammar
50 * Method: addRule
51 * Signature: (JJJ)V
52 */
53 JNIEXPORT void JNICALL
54 Java_io_github_cvc5_api_Grammar_addRule(JNIEnv* env,
55 jobject,
56 jlong pointer,
57 jlong ntSymbolPointer,
58 jlong rulePointer)
59 {
60 CVC5_JAVA_API_TRY_CATCH_BEGIN;
61 Grammar* current = reinterpret_cast<Grammar*>(pointer);
62 Term* ntSymbol = reinterpret_cast<Term*>(ntSymbolPointer);
63 Term* rule = reinterpret_cast<Term*>(rulePointer);
64 current->addRule(*ntSymbol, *rule);
65 CVC5_JAVA_API_TRY_CATCH_END(env);
66 }
67
68 /*
69 * Class: io_github_cvc5_api_Grammar
70 * Method: addRules
71 * Signature: (JJ[J)V
72 */
73 JNIEXPORT void JNICALL
74 Java_io_github_cvc5_api_Grammar_addRules(JNIEnv* env,
75 jobject,
76 jlong pointer,
77 jlong ntSymbolPointer,
78 jlongArray rulePointers)
79 {
80 CVC5_JAVA_API_TRY_CATCH_BEGIN;
81 Grammar* current = reinterpret_cast<Grammar*>(pointer);
82 Term* ntSymbol = reinterpret_cast<Term*>(ntSymbolPointer);
83 std::vector<Term> rules = getObjectsFromPointers<Term>(env, rulePointers);
84 current->addRules(*ntSymbol, rules);
85 CVC5_JAVA_API_TRY_CATCH_END(env);
86 }
87
88 /*
89 * Class: io_github_cvc5_api_Grammar
90 * Method: addAnyConstant
91 * Signature: (JJ)V
92 */
93 JNIEXPORT void JNICALL Java_io_github_cvc5_api_Grammar_addAnyConstant(
94 JNIEnv* env, jobject, jlong pointer, jlong ntSymbolPointer)
95 {
96 CVC5_JAVA_API_TRY_CATCH_BEGIN;
97 Grammar* current = reinterpret_cast<Grammar*>(pointer);
98 Term* ntSymbol = reinterpret_cast<Term*>(ntSymbolPointer);
99 current->addAnyConstant(*ntSymbol);
100 CVC5_JAVA_API_TRY_CATCH_END(env);
101 }
102
103 /*
104 * Class: io_github_cvc5_api_Grammar
105 * Method: addAnyVariable
106 * Signature: (JJ)V
107 */
108 JNIEXPORT void JNICALL Java_io_github_cvc5_api_Grammar_addAnyVariable(
109 JNIEnv* env, jobject, jlong pointer, jlong ntSymbolPointer)
110 {
111 CVC5_JAVA_API_TRY_CATCH_BEGIN;
112 Grammar* current = reinterpret_cast<Grammar*>(pointer);
113 Term* ntSymbol = reinterpret_cast<Term*>(ntSymbolPointer);
114 current->addAnyVariable(*ntSymbol);
115 CVC5_JAVA_API_TRY_CATCH_END(env);
116 }
117
118 /*
119 * Class: io_github_cvc5_api_Grammar
120 * Method: toString
121 * Signature: (J)Ljava/lang/String;
122 */
123 JNIEXPORT jstring JNICALL
124 Java_io_github_cvc5_api_Grammar_toString(JNIEnv* env, jobject, jlong pointer)
125 {
126 CVC5_JAVA_API_TRY_CATCH_BEGIN;
127 Grammar* current = reinterpret_cast<Grammar*>(pointer);
128 return env->NewStringUTF(current->toString().c_str());
129 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env, nullptr);
130 }