1 /******************************************************************************
2 * Top contributors (to current version):
5 * This file is part of the cvc5 project.
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 * ****************************************************************************
16 #include "api/cpp/cvc5.h"
17 #include "api_utilities.h"
18 #include "io_github_cvc5_api_Grammar.h"
20 using namespace cvc5::api
;
23 * Class: io_github_cvc5_api_Grammar
27 JNIEXPORT jlong JNICALL
28 Java_io_github_cvc5_api_Grammar_copyGrammar(JNIEnv
* env
, jclass
, jlong pointer
)
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);
38 * Class: io_github_cvc5_api_Grammar
39 * Method: deletePointer
42 JNIEXPORT
void JNICALL
43 Java_io_github_cvc5_api_Grammar_deletePointer(JNIEnv
*, jclass
, jlong pointer
)
45 delete reinterpret_cast<Grammar
*>(pointer
);
49 * Class: io_github_cvc5_api_Grammar
53 JNIEXPORT
void JNICALL
54 Java_io_github_cvc5_api_Grammar_addRule(JNIEnv
* env
,
57 jlong ntSymbolPointer
,
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
);
69 * Class: io_github_cvc5_api_Grammar
73 JNIEXPORT
void JNICALL
74 Java_io_github_cvc5_api_Grammar_addRules(JNIEnv
* env
,
77 jlong ntSymbolPointer
,
78 jlongArray rulePointers
)
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
);
89 * Class: io_github_cvc5_api_Grammar
90 * Method: addAnyConstant
93 JNIEXPORT
void JNICALL
Java_io_github_cvc5_api_Grammar_addAnyConstant(
94 JNIEnv
* env
, jobject
, jlong pointer
, jlong ntSymbolPointer
)
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
);
104 * Class: io_github_cvc5_api_Grammar
105 * Method: addAnyVariable
108 JNIEXPORT
void JNICALL
Java_io_github_cvc5_api_Grammar_addAnyVariable(
109 JNIEnv
* env
, jobject
, jlong pointer
, jlong ntSymbolPointer
)
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
);
119 * Class: io_github_cvc5_api_Grammar
121 * Signature: (J)Ljava/lang/String;
123 JNIEXPORT jstring JNICALL
124 Java_io_github_cvc5_api_Grammar_toString(JNIEnv
* env
, jobject
, jlong pointer
)
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);