kcl-planning / dino Goto Github PK
View Code? Open in Web Editor NEWA heuristic PDDL+ planner based on the Discretise & Validate approach.
License: Other
A heuristic PDDL+ planner based on the Discretise & Validate approach.
License: Other
In file included from pddl+.yacc:1423: lex.yy.cc: In member function ‘virtual int yyFlexLexer::yylex()’: lex.yy.cc:1169:18: error: no match for ‘operator=’ (operand types are ‘std::istream’ {aka ‘std::basic_istream<char>’} and ‘std::istream*’ {aka ‘std::basic_istream<char>*’}) 1169 | yyin = & std::cin; | ^~~ In file included from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/istream:625:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ 625 | operator=(basic_istream&& __rhs) | ^~~~~~~~ /usr/include/c++/9/istream:625:33: note: no known conversion for argument 1 from ‘std::istream*’ {aka ‘std::basic_istream<char>*’} to ‘std::basic_istream<char>&&’ 625 | operator=(basic_istream&& __rhs) | ~~~~~~~~~~~~~~~~^~~~~ In file included from pddl+.yacc:1423: lex.yy.cc:1172:19: error: no match for ‘operator=’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream<char>’} and ‘std::ostream*’ {aka ‘std::basic_ostream<char>*’}) 1172 | yyout = & std::cout; | ^~~~ In file included from /usr/include/c++/9/istream:39, from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/ostream:408:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ 408 | operator=(basic_ostream&& __rhs) | ^~~~~~~~ /usr/include/c++/9/ostream:408:33: note: no known conversion for argument 1 from ‘std::ostream*’ {aka ‘std::basic_ostream<char>*’} to ‘std::basic_ostream<char>&&’ 408 | operator=(basic_ostream&& __rhs) | ~~~~~~~~~~~~~~~~^~~~~ In file included from pddl+.yacc:1423: lex.yy.cc:1816:46: error: cannot convert ‘std::istream’ {aka ‘std::basic_istream<char>’} to ‘std::istream*’ {aka ‘std::basic_istream<char>*’} in assignment 1816 | YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; | ^~~~ | | | std::istream {aka std::basic_istream<char>} lex.yy.cc: In constructor ‘yyFlexLexer::yyFlexLexer(std::istream*, std::ostream*)’: lex.yy.cc:1926:75: error: ‘std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]’ is protected within this context 1926 | yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) | ^ In file included from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/istream:606:7: note: declared protected here 606 | basic_istream() | ^~~~~~~~~~~~~ In file included from pddl+.yacc:1423: lex.yy.cc:1926:75: error: ‘std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]’ is protected within this context 1926 | yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) | ^ In file included from /usr/include/c++/9/istream:39, from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/ostream:390:7: note: declared protected here 390 | basic_ostream() | ^~~~~~~~~~~~~ In file included from pddl+.yacc:1423: lex.yy.cc:1928:9: error: no match for ‘operator=’ (operand types are ‘std::istream’ {aka ‘std::basic_istream<char>’} and ‘std::istream*’ {aka ‘std::basic_istream<char>*’}) 1928 | yyin = arg_yyin; | ^~~~~~~~ In file included from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/istream:625:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ 625 | operator=(basic_istream&& __rhs) | ^~~~~~~~ /usr/include/c++/9/istream:625:33: note: no known conversion for argument 1 from ‘std::istream*’ {aka ‘std::basic_istream<char>*’} to ‘std::basic_istream<char>&&’ 625 | operator=(basic_istream&& __rhs) | ~~~~~~~~~~~~~~~~^~~~~ In file included from pddl+.yacc:1423: lex.yy.cc:1929:10: error: no match for ‘operator=’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream<char>’} and ‘std::ostream*’ {aka ‘std::basic_ostream<char>*’}) 1929 | yyout = arg_yyout; | ^~~~~~~~~ In file included from /usr/include/c++/9/istream:39, from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/ostream:408:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ 408 | operator=(basic_ostream&& __rhs) | ^~~~~~~~ /usr/include/c++/9/ostream:408:33: note: no known conversion for argument 1 from ‘std::ostream*’ {aka ‘std::basic_ostream<char>*’} to ‘std::basic_ostream<char>&&’ 408 | operator=(basic_ostream&& __rhs) | ~~~~~~~~~~~~~~~~^~~~~ In file included from pddl+.yacc:1423: lex.yy.cc: In member function ‘virtual void yyFlexLexer::switch_streams(std::istream*, std::ostream*)’: lex.yy.cc:1975:11: error: no match for ‘operator=’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream<char>’} and ‘std::ostream*’ {aka ‘std::basic_ostream<char>*’}) 1975 | yyout = new_out; | ^~~~~~~ In file included from /usr/include/c++/9/istream:39, from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/ostream:408:7: note: candidate: ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ 408 | operator=(basic_ostream&& __rhs) | ^~~~~~~~ /usr/include/c++/9/ostream:408:33: note: no known conversion for argument 1 from ‘std::ostream*’ {aka ‘std::basic_ostream<char>*’} to ‘std::basic_ostream<char>&&’ 408 | operator=(basic_ostream&& __rhs) | ~~~~~~~~~~~~~~~~^~~~~ In file included from pddl+.yacc:1423: lex.yy.cc: In member function ‘virtual int yyFlexLexer::LexerInput(char*, int)’: lex.yy.cc:1984:11: error: base operand of ‘->’ has non-pointer type ‘std::istream’ {aka ‘std::basic_istream<char>’} 1984 | if ( yyin->eof() || yyin->fail() ) | ^~ lex.yy.cc:1984:26: error: base operand of ‘->’ has non-pointer type ‘std::istream’ {aka ‘std::basic_istream<char>’} 1984 | if ( yyin->eof() || yyin->fail() ) | ^~ lex.yy.cc:1988:6: error: base operand of ‘->’ has non-pointer type ‘std::istream’ {aka ‘std::basic_istream<char>’} 1988 | yyin->get( buf[0] ); | ^~ lex.yy.cc:1990:11: error: base operand of ‘->’ has non-pointer type ‘std::istream’ {aka ‘std::basic_istream<char>’} 1990 | if ( yyin->eof() ) | ^~ lex.yy.cc:1993:11: error: base operand of ‘->’ has non-pointer type ‘std::istream’ {aka ‘std::basic_istream<char>’} 1993 | if ( yyin->bad() ) | ^~ lex.yy.cc: In member function ‘virtual void yyFlexLexer::LexerOutput(const char*, int)’: lex.yy.cc:2010:14: error: base operand of ‘->’ has non-pointer type ‘std::ostream’ {aka ‘std::basic_ostream<char>’} 2010 | (void) yyout->write( buf, size ); | ^~ lex.yy.cc: In member function ‘virtual void yyFlexLexer::yyrestart(std::istream*)’: lex.yy.cc:2330:37: error: cannot convert ‘std::istream*’ {aka ‘std::basic_istream<char>*’} to ‘std::istream&’ {aka ‘std::basic_istream<char>&’} 2330 | yy_init_buffer( YY_CURRENT_BUFFER, input_file ); | ^~~~~~~~~~ | | | std::istream* {aka std::basic_istream<char>*} In file included from lex.yy.cc:322, from pddl+.yacc:1423: /usr/include/FlexLexer.h:156:58: note: initializing argument 2 of ‘void yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)’ 156 | void yy_init_buffer( yy_buffer_state* b, std::istream& s ); | ~~~~~~~~~~~~~~^ In file included from pddl+.yacc:1423: lex.yy.cc: In member function ‘void yyFlexLexer::yy_load_buffer_state()’: lex.yy.cc:2373:35: error: no match for ‘operator=’ (operand types are ‘std::istream’ {aka ‘std::basic_istream<char>’} and ‘std::istream*’ {aka ‘std::basic_istream<char>*’}) 2373 | yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; | ^~~~~~~~~~~~~ In file included from /usr/include/c++/9/fstream:38, from pddl+.yacc:45: /usr/include/c++/9/istream:625:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ 625 | operator=(basic_istream&& __rhs) | ^~~~~~~~ /usr/include/c++/9/istream:625:33: note: no known conversion for argument 1 from ‘std::istream*’ {aka ‘std::basic_istream<char>*’} to ‘std::basic_istream<char>&&’ 625 | operator=(basic_istream&& __rhs) | ~~~~~~~~~~~~~~~~^~~~~ In file included from pddl+.yacc:1423: lex.yy.cc: In member function ‘virtual yy_buffer_state* yyFlexLexer::yy_create_buffer(std::istream*, int)’: lex.yy.cc:2402:21: error: cannot convert ‘std::istream*’ {aka ‘std::basic_istream<char>*’} to ‘std::istream&’ {aka ‘std::basic_istream<char>&’} 2402 | yy_init_buffer( b, file ); | ^~~~ | | | std::istream* {aka std::basic_istream<char>*} In file included from lex.yy.cc:322, from pddl+.yacc:1423: /usr/include/FlexLexer.h:156:58: note: initializing argument 2 of ‘void yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)’ 156 | void yy_init_buffer( yy_buffer_state* b, std::istream& s ); | ~~~~~~~~~~~~~~^ In file included from pddl+.yacc:1423: lex.yy.cc: At global scope: lex.yy.cc:22:25: error: no declaration matches ‘void yyFlexLexer::yy_init_buffer(YY_BUFFER_STATE, std::istream*)’ 22 | #define yyFlexLexer yyFlexLexer | ^~~~~~~~~~~ lex.yy.cc:2432:10: note: in expansion of macro ‘yyFlexLexer’ 2432 | void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) | ^~~~~~~~~~~ In file included from lex.yy.cc:322, from pddl+.yacc:1423: /usr/include/FlexLexer.h:156:8: note: candidate is: ‘void yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)’ 156 | void yy_init_buffer( yy_buffer_state* b, std::istream& s ); | ^~~~~~~~~~~~~~ In file included from pddl+.yacc:1423: lex.yy.cc:22:25: note: ‘class yyFlexLexer’ defined here 22 | #define yyFlexLexer yyFlexLexer | ^~~~~~~~~~~ make[1]: *** [Makefile:27: pddl+.o] Error 1 make[1]: se sale del directorio '/home/patri/DiNo/src/DiNo_parser' make: *** [Makefile:7: pddl2upm] Error 2
I have this errors. I'm working in Ubuntu 20.04. How I can solve it?
Tried to run the linear generator problem per instructions
UPMURPHI_HOME=../.. ../../bin/dino generator.pddl prob01.pd
after successful compilation, but got this error:
Compiling PDDL to DiNo model, please wait...
Start DiNo translation...
----- CONFIG FILE -----
PDDL Domain File: generator.pddl
PDDL Problem File: prob01.pddl
The output model will be written on file: generator.m
The output external function file will be written on file: generator.h
----- DOMAIN SETTINGS -----
Time discretisation: 0.1
Real number: (Integer): 5 digits for the integer part
Real number: (Fractional) 2 digits for the fractional part
...Translation completed
Errors: 0, warnings: 0
PDDL compilation successful, no errors
DiNo model generated in file generator.m
Compiling model...
Segmentation fault: 11
Not really sure how to diagnose this problem, since I don't see any clue about what failed. I tried running with --warnings
but still no warnings between Compiling model...
and the seg fault.
I get this error when compiling:
g++ -c pddl+.cpp -g -O2 -ggdb -DYYMAXDEPTH=25000
In file included from pddl+.yacc:1423:0:
lex.yy.cc: In member function ‘virtual int yyFlexLexer::yylex()’:
lex.yy.cc:1169:9: error: no match for ‘operator=’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘std::istream* {aka std::basic_istream<char>*}’)
yyin = & std::cin;
^
This file is generated from pddl+.lex , but I can not see the problem ¿Versions of flex?
I am using Ubuntu 16.04 LTS
Do you by any chance have a Docker container for DiNo? We'd like to do some comparisons, but we aren't having any luck getting it to build, and flex 2.5 isn't getting any newer, either. Thanks!
Hello,
after working my way around the issue with flex
(downgrading to 2.5.39 from 2.6) I have stumbled onto another issue.
Invoking DiNo
like this
DiNo/ex/1D-powered-descent$ ../../bin/dino descent.pddl prob_earth01.pddl --custom 1.0 5 2 --clean --force
on the first instance of the 1D Powered Descent domain results in generating invalid C++ code in the file descent.cpp
, output of g++ below
Compiling executable planner, please wait...
descent.cpp:630:1: error: stray ‘\360’ in program
{��x�}
^
descent.cpp:630:1: error: stray ‘\37’ in program
descent.cpp:630:1: error: stray ‘\1’ in program
descent.cpp: In member function ‘void world_class::fire_processes_plus()’:
descent.cpp:617:22: error: ‘mQ’ was not declared in this scope
mu_thrust_clock = (mQ}
^
descent.cpp:617:24: error: expected ‘)’ before ‘}’ token
mu_thrust_clock = (mQ}
^
descent.cpp:621:39: error: qualified-id in declaration before ‘(’ token
void world_class::fire_processes_minus()
^
In file included from /home/bowman/Sandboxes/DiNo/bin/../include/upm_epilog.hpp:49:0,
from descent.cpp:4220:
/home/bowman/Sandboxes/DiNo/bin/../include/upm_verifier.cpp:44:1: error: expected ‘}’ at end of input
}
^
See attached & compressed generated sourcefile.
It looks to me like DiNo code generator is writing a pointer to a buffer instead of the contents of the buffer.
NOTE: I am testing this on a 64-bit system, not sure if this is relevant but since I saw g++-multilib
as a dependency it may be.
Cheers,
Miquel.
Dear DiNo maintainers,
I have found that the version of flex shipping with Ubuntu 16.04, flex 2.6 breaks your build in a bad way. Going back to the latest stable release - 2.5.39 - allows to build the parser without problems. This has been already acknowledged by flex current maintainers, see message on link below
https://sourceforge.net/p/flex/mailman/flex-help/
You'd want to update your QUICKSTART or README to introduce an advisory until the issue introduced with flex 2.6 is fixed.
Cheers,
Miquel.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.