Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
555034cb
Commit
555034cb
authored
Feb 10, 2017
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Wb wb_load-file parser antlr replaced
parent
2e705e5e
Changes
22
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
842 additions
and
1216 deletions
+842
-1216
bcomp/wbl/bcomp/src/basecomponent.wb_load
bcomp/wbl/bcomp/src/basecomponent.wb_load
+10
-10
build-howto.info
build-howto.info
+0
-5
java/aapp/jopg/src/os_templ/hw_templ/makefile
java/aapp/jopg/src/os_templ/hw_templ/makefile
+1
-0
src/tools/pwre/src/os_cygwin/pwre_configure.sh
src/tools/pwre/src/os_cygwin/pwre_configure.sh
+0
-2
src/tools/pwre/src/os_freebsd/pwre_configure.sh
src/tools/pwre/src/os_freebsd/pwre_configure.sh
+0
-2
src/tools/pwre/src/os_linux/pwre_configure.sh
src/tools/pwre/src/os_linux/pwre_configure.sh
+0
-3
src/tools/pwre/src/os_macos/pwre_configure.sh
src/tools/pwre/src/os_macos/pwre_configure.sh
+0
-2
src/tools/pwre/src/os_mingw/pwre_configure.sh
src/tools/pwre/src/os_mingw/pwre_configure.sh
+0
-2
src/tools/pwre/src/os_openbsd/pwre_configure.sh
src/tools/pwre/src/os_openbsd/pwre_configure.sh
+0
-2
src/tools/pwre/src/os_templ/pwre_configure.sh
src/tools/pwre/src/os_templ/pwre_configure.sh
+0
-2
wb/lib/wb/src/wb_vrepwbl.cpp
wb/lib/wb/src/wb_vrepwbl.cpp
+12
-35
wb/lib/wb/src/wb_vrepwbl.h
wb/lib/wb/src/wb_vrepwbl.h
+1
-3
wb/lib/wb/src/wb_wbl_parser.cpp
wb/lib/wb/src/wb_wbl_parser.cpp
+583
-0
wb/lib/wb/src/wb_wbl_parser.h
wb/lib/wb/src/wb_wbl_parser.h
+140
-0
wb/lib/wb/src/wb_wblfile.h
wb/lib/wb/src/wb_wblfile.h
+2
-4
wb/lib/wb/src/wb_wblnode.cpp
wb/lib/wb/src/wb_wblnode.cpp
+70
-81
wb/lib/wb/src/wb_wblnode.h
wb/lib/wb/src/wb_wblnode.h
+23
-70
wb/lib/wb/src/wb_wblparser.cpp
wb/lib/wb/src/wb_wblparser.cpp
+0
-718
wb/lib/wb/src/wb_wblparser.g
wb/lib/wb/src/wb_wblparser.g
+0
-94
wb/lib/wb/src/wb_wblparser.hpp
wb/lib/wb/src/wb_wblparser.hpp
+0
-95
wb/lib/wb/src/wb_wblparserTokenTypes.hpp
wb/lib/wb/src/wb_wblparserTokenTypes.hpp
+0
-52
wb/lib/wb/src/wb_wblparserTokenTypes.txt
wb/lib/wb/src/wb_wblparserTokenTypes.txt
+0
-34
No files found.
bcomp/wbl/bcomp/src/basecomponent.wb_load
View file @
555034cb
build-howto.info
View file @
555034cb
...
...
@@ -14,7 +14,6 @@ libdb5.3-dev (Any Berkeley DB version > 4.3, on Fedora db4-devel)
libdb5.3++-dev
libasound2-dev (on Fedora alsa-lib-devel)
doxygen
libantlr-dev (version 2.7.7)
jdk
...
...
@@ -40,7 +39,6 @@ libasound2-dev
libdb5.1-dev
libdb5.1++-dev
doxygen
libantlr-dev
Optional:
...
...
@@ -274,9 +272,6 @@ Install BerkeleyDB 4.8 (pkg_add -r db48)
Install jdk (cd /usr/port/java/jdk16; make install clean)
Download and build source package antlr-2.7.7 from www.antlr.org
Hint: define MAKE to gmake before configure and build (export MAKE=gmake).
Install doxygen (cd /usr/devel/doxygen; make install clean)
Continue to build Proview following the instructions in section 2 or 3 above.
...
...
java/aapp/jopg/src/os_templ/hw_templ/makefile
View file @
555034cb
...
...
@@ -46,6 +46,7 @@ extern_java_sources := \
GlowEventMenu.java,
\
GlowEventToolbar.java,
\
GlowEventTable.java,
\
GlowEventSignal.java,
\
GrowCtxIfc.java,
\
GrowCmn.java,
\
GrowAnnotIfc.java,
\
...
...
src/tools/pwre/src/os_cygwin/pwre_configure.sh
View file @
555034cb
...
...
@@ -363,7 +363,6 @@ else
echo
"Mandatory :"
pwre_config_check_lib gtk GTK gtk gtk 0
"/usr/lib/libgtk-x11-2.0.dll.a"
pwre_config_check_lib libantlr LIBANTLR lib wb 0
"/usr/local/lib/libantlr.a"
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0
"/usr/lib/libtirpc.a"
pwre_config_check_lib libasound LIBASOUND lib lib 0
"/usr/lib/libasound.so:/usr/lib/libasound.a"
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0
"/usr/lib/libpthread.so:/usr/lib/libpthread.a:/usr/lib/
$hwpl
-linux-gnu/libpthread.so"
...
...
@@ -377,7 +376,6 @@ else
pwre_config_check_lib libiconv LIBICONV lib lib 0
"/usr/lib/libiconv.dll.a:/usr/lib/libiconv.a"
pwre_config_check_lib libX11 LIBX11 lib lib 0
"/usr/lib/libX11.a"
pwre_config_check_include antlr ANTLR 1
"/usr/local/include/antlr/CommonAST.hpp"
pwre_config_check_include gtk GTK 1
"/usr/local/include/gtk-2.0/gtk.h:/usr/local/include/gtk-2.0/gtk/gtk.h:/usr/include/gtk-2.0/gtk"
pwre_config_check_include jni JNI 1
"
$jdk
/include/jni.h"
pwre_config_check_include jni JNI 0
"
$jdk
/include/win32/jni_md.h"
...
...
src/tools/pwre/src/os_freebsd/pwre_configure.sh
View file @
555034cb
...
...
@@ -279,7 +279,6 @@ fi
echo
"Mandatory :"
pwre_config_check_lib gtk GTK gtk gtk 0 /usr/local/lib/libgtk-x11-2.0.a
pwre_config_check_lib libantlr LIBANTLR lib lib 0 /usr/local/lib/libantlr.a
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0 /usr/lib/librpcsvc.so
:/usr/lib/librpcsvc.a
#pwre_config_check_lib libasound LIBASOUND lib lib 0 /usr/lib/libasound.so
:/usr/lib/libasound.a
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0 /usr/lib/libpthread.so
:/usr/lib/libpthread.a
...
...
@@ -291,7 +290,6 @@ pwre_config_check_lib librt LIBRT lib lib 0 /usr/lib/librt.dylib:/usr/lib/
pwre_config_check_lib libiconv LIBICONV lib lib 0 /usr/local/lib/libiconv.so
:usr/local/lib/libiconv.a
pwre_config_check_lib libfl LIBFL lib lib 0 /usr/lib/libfl.os
:/usr/lib/libfl.a
pwre_config_check_include antlr ANTLR 1 /usr/local/include/antlr/CommonAST.hpp
pwre_config_check_include gtk GTK 1 /usr/local/include/gtk-2.0/gtk/gtk.h
pwre_config_check_include jni JNI 1 /usr/local/jdk1.6.0/include/jni.h
pwre_config_check_include jni JNI 0 /usr/local/jdk1.6.0/include/freebsd/jni_md.h
...
...
src/tools/pwre/src/os_linux/pwre_configure.sh
View file @
555034cb
...
...
@@ -303,7 +303,6 @@ else
hwpl
=
i386
fi
fi
echo
"hwpl
$hwpl
"
# Bash
if
[
"
$SHELL
"
!=
"/bin/bash"
]
&&
[
"
$SHELL
"
!=
"/usr/local/bin/bash"
]
;
then
...
...
@@ -458,7 +457,6 @@ else
echo
"Mandatory :"
pwre_config_check_lib gtk GTK gtk gtk 0
"/usr/lib/libgtk-x11-2.0.so:/usr/lib/
$hwpl
-linux-
$gnu
/libgtk-x11-2.0.so"
pwre_config_check_lib libantlr LIBANTLR lib wb 0
"/usr/lib/libantlr.a:/usr/local/lib/libantlr.a"
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0
"/usr/lib/librpcsvc.so:/usr/lib/librpcsvc.a:/usr/lib/
$hwpl
-linux-
$gnu
/librpcsvc.a"
pwre_config_check_lib libasound LIBASOUND lib lib 0
"/usr/lib/libasound.so:/usr/lib/libasound.a:/usr/lib/
$hwpl
-linux-
$gnu
/libasound.so"
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0
"/usr/lib/libpthread.so:/usr/lib/libpthread.a:/usr/lib/
$hwpl
-linux-
$gnu
/libpthread.so"
...
...
@@ -471,7 +469,6 @@ else
pwre_config_check_lib libfl LIBFL lib lib 0
"/usr/lib/libfl.so:/usr/lib/libfl.a:/usr/lib/
$hwpl
-linux-
$gnu
/libfl.so"
pwre_config_check_lib libX11 LIBX11 lib lib 0
"/usr/lib/libX11.so:/usr/lib/
$hwpl
-linux-
$gnu
/libX11.so"
pwre_config_check_include antlr ANTLR 1
"/usr/include/antlr/CommonAST.hpp:/usr/local/include/antlr/CommonAST.hpp"
pwre_config_check_include gtk GTK 1
"/usr/local/include/gtk-2.0/gtk.h:/usr/local/include/gtk-2.0/gtk/gtk.h:/usr/include/gtk-2.0/gtk/gtk.h"
pwre_config_check_include alsa ALSA 1
"/usr/include/alsa/asoundlib.h"
...
...
src/tools/pwre/src/os_macos/pwre_configure.sh
View file @
555034cb
...
...
@@ -278,7 +278,6 @@ fi
echo
"Mandatory :"
pwre_config_check_lib gtk GTK gtk gtk 0 /sw/lib/libgtk-x11-2.0.dylib
pwre_config_check_lib libantlr LIBANTLR lib lib 0 /usr/local/lib/libantlr.a
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0 /usr/lib/librpcsvc.dylib
:/usr/lib/librpcsvc.a
#pwre_config_check_lib libasound LIBASOUND lib lib 0 /usr/lib/libasound.dylib
:/usr/lib/libasound.a
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0 /usr/lib/libpthread.dylib
:/usr/lib/libpthread.a
...
...
@@ -290,7 +289,6 @@ pwre_config_check_lib libz LIBZ lib lib 0 /usr/lib/libz.dylib:/usr/lib/
pwre_config_check_lib libiconv LIBICONV lib lib 0 /usr/lib/libiconv.dylib
pwre_config_check_lib libfl LIBFL lib lib 0 /usr/lib/libfl.dylib
:/usr/lib/libfl.a
pwre_config_check_include antlr ANTLR 1 /usr/local/include/antlr/CommonAST.hpp
pwre_config_check_include gtk GTK 1 /sw/include/gtk-2.0/gtk/gtk.h
pwre_config_check_include jni JNI 1 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
:
$jdk
/include/jni.h
pwre_config_check_include jni JNI 0
$jdk
/include/linux/jni_md.h
...
...
src/tools/pwre/src/os_mingw/pwre_configure.sh
View file @
555034cb
...
...
@@ -282,7 +282,6 @@ fi
echo
"Mandatory :"
pwre_config_check_lib gtk GTK gtk gtk 0 /sw/lib/libgtk-x11-2.0.dylib
pwre_config_check_lib libantlr LIBANTLR lib lib 0 /usr/local/lib/libantlr.a
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0 /usr/lib/librpcsvc.dylib
:/usr/lib/librpcsvc.a
#pwre_config_check_lib libasound LIBASOUND lib lib 0 /usr/lib/libasound.dylib
:/usr/lib/libasound.a
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0 /usr/lib/libpthread.dylib
:/usr/lib/libpthread.a
...
...
@@ -294,7 +293,6 @@ pwre_config_check_lib libz LIBZ lib lib 0 c:/mingw/lib/libz.ddl.a
pwre_config_check_lib libiconv LIBICONV lib lib 0 c
:/mingw/lib/libiconv.a
pwre_config_check_lib libfl LIBFL lib lib 0 c
:/mingw/msys/1.0/lib/libfl.a
pwre_config_check_include antlr ANTLR 1 /usr/local/include/antlr/CommonAST.hpp
pwre_config_check_include gtk GTK 1 /sw/include/gtk-2.0/gtk/gtk.h
pwre_config_check_include jni JNI 1 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
:
$jdk
/include/jni.h
pwre_config_check_include jni JNI 0
$jdk
/include/linux/jni_md.h
...
...
src/tools/pwre/src/os_openbsd/pwre_configure.sh
View file @
555034cb
...
...
@@ -280,7 +280,6 @@ fi
echo
"Mandatory :"
pwre_config_check_lib gtk GTK gtk gtk 0 /usr/local/lib/libgtk-x11-2.0.a
pwre_config_check_lib libantlr LIBANTLR lib lib 0 /usr/local/lib/libantlr.a
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0 /usr/lib/librpcsvc.so
:/usr/lib/librpcsvc.a
#pwre_config_check_lib libasound LIBASOUND lib lib 0 /usr/lib/libasound.so
:/usr/lib/libasound.a
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0 /usr/lib/libpthread.so
:/usr/lib/libpthread.a
...
...
@@ -292,7 +291,6 @@ pwre_config_check_lib libz LIBZ lib lib 0 /usr/lib/libz.so:/usr/lib/lib
pwre_config_check_lib libiconv LIBICONV lib lib 0 /usr/local/lib/libiconv.so
:/usr/local/lib/libiconv.a
pwre_config_check_lib libfl LIBFL lib lib 0 /usr/lib/libfl.os
:/usr/lib/libfl.a
pwre_config_check_include antlr ANTLR 1 /usr/local/include/antlr/CommonAST.hpp
pwre_config_check_include gtk GTK 1 /usr/local/include/gtk-2.0/gtk/gtk.h
pwre_config_check_include iconv ICONV 1 /usr/local/include/iconv.h
pwre_config_check_include jni JNI 1 /usr/local/jdk-1.7.0/include/jni.h
...
...
src/tools/pwre/src/os_templ/pwre_configure.sh
View file @
555034cb
...
...
@@ -231,7 +231,6 @@ pwre_config_init
#Gtk
pwre_config_check_lib gtk GTK gtk gtk 0 /usr/lib/libgtk-x11-2.0.so
pwre_config_check_lib libantlr LIBANTLR lib lib 0 /usr/local/lib/libantlr.a
pwre_config_check_lib librpcsvc LIBRPCSVC lib lib 0 /usr/lib/librpcsvc.so:/usr/lib/librpcsvc.a
pwre_config_check_lib libasound LIBASOUND lib lib 0 /usr/lib/libasound.so:usr/lib/libasound.a
pwre_config_check_lib libpthread LIBPTHREAD lib lib 0 /usr/lib/libpthread.so:usr/lib/libpthread.a
...
...
@@ -248,7 +247,6 @@ pwre_config_check_lib libfl LIBFL lib lib 0 /usr/lib/libfl.so:usr/lib/libf
#set -o xtrace
pwre_config_check_include antlr ANTLR 1 /usr/local/include/antlr/CommonAST.hpp
pwre_config_check_include gtk GTK 1 /usr/local/include/gtk-2.0/gtk.h:/usr/local/include/gtk-2.0/gtk/gtk.h
pwre_config_check_include jni JNI 1
$jdk
/include/jni.h
pwre_config_check_include jni JNI 0
$jdk
/include/linux/jni_md.h
...
...
wb/lib/wb/src/wb_vrepwbl.cpp
View file @
555034cb
...
...
@@ -37,9 +37,7 @@
#include <iostream>
#include <fstream>
#include <sys/stat.h>
#include "antlr/AST.hpp"
#include "wb_wbllexer.hpp"
#include "wb_wblparser.hpp"
#include "wb_wbl_parser.h"
#include "wb_wblnode.h"
#include "wb_vrepwbl.h"
...
...
@@ -62,7 +60,6 @@ wb_vrepwbl::~wb_vrepwbl()
{
for
(
int
i
=
0
;
i
<
file_cnt
;
i
++
)
{
delete
file
[
i
]
->
parser
;
delete
file
[
i
]
->
lexer
;
delete
file
[
i
];
}
...
...
@@ -264,7 +261,6 @@ int wb_vrepwbl::load( const char *fname)
int
file_cnt_sort
=
0
;
rsts
=
LDH__SUCCESS
;
wblparser_error_cnt
=
0
;
MsgWindow
::
dset_nodraw
();
...
...
@@ -312,7 +308,7 @@ int wb_vrepwbl::load( const char *fname)
wbl_sort_files
);
for
(
i
=
0
;
i
<
file_cnt
;
i
++
)
{
for
(
ref_wblnode
n
=
file
[
i
]
->
rootAST
;
n
;
n
=
n
->
getNextSibling
())
for
(
ref_wblnode
n
=
(
ref_wblnode
)
file
[
i
]
->
rootAST
;
n
;
n
=
(
ref_wblnode
)
n
->
getNextSibling
())
n
->
registerNode
(
this
);
}
for
(
i
=
0
;
i
<
file_cnt
;
i
++
)
{
...
...
@@ -337,10 +333,10 @@ int wb_vrepwbl::load( const char *fname)
error_cnt
++
;
}
if
(
error_cnt
||
wblparser_error_cnt
)
{
if
(
error_cnt
)
{
char
str
[
80
];
sprintf
(
str
,
"Errors when loading volume: %d error%s found"
,
error_cnt
+
wblparser_error_cnt
,
(
error_cnt
+
wblparser_
error_cnt
==
1
)
?
""
:
"s"
);
error_cnt
,
(
error_cnt
==
1
)
?
""
:
"s"
);
MsgWindow
::
message
(
'F'
,
str
);
}
else
...
...
@@ -1364,6 +1360,7 @@ int wb_vrepwbl::load_files( const char *file_spec)
{
char
found_file
[
200
];
int
sts
;
wb_wbl_parser
p
;
sts
=
dcli_search_file
(
(
char
*
)
file_spec
,
found_file
,
DCLI_DIR_SEARCH_INIT
);
while
(
ODD
(
sts
))
{
...
...
@@ -1379,23 +1376,11 @@ int wb_vrepwbl::load_files( const char *file_spec)
return
LDH__MAXWBLFILES
;
file
[
file_cnt
]
=
new
wb_wblfile
();
file
[
file_cnt
]
->
lexer
=
new
wb_wbllexer
(
s
);
file
[
file_cnt
]
->
lexer
->
setFilename
(
found_file
);
file
[
file_cnt
]
->
parser
=
new
wb_wblparser
(
*
file
[
file_cnt
]
->
lexer
);
file
[
file_cnt
]
->
parser
->
setFilename
(
found_file
);
// Antlr 2.7.3 seems to want an ASTFactory here...
ASTFactory
wblfactory
(
"ref_wblnode"
,
wb_wblnode
::
factory
);
file
[
file_cnt
]
->
parser
->
initializeASTFactory
(
wblfactory
);
file
[
file_cnt
]
->
parser
->
setASTNodeFactory
(
&
wblfactory
);
// file[file_cnt]->parser->setASTNodeFactory( wb_wblnode::factory);
file
[
file_cnt
]
->
parser
=
new
wb_wbl_parser
();
try
{
// Parse the input expression
file
[
file_cnt
]
->
parser
->
unit
();
AST
*
a
=
file
[
file_cnt
]
->
parser
->
getAST
();
file
[
file_cnt
]
->
rootAST
=
(
wb_wblnode
*
)
a
;
file
[
file_cnt
]
->
parser
->
parse
(
found_file
);
file
[
file_cnt
]
->
rootAST
=
(
ref_wblnode
)
file
[
file_cnt
]
->
parser
->
get_root_ast
();
if
(
!
file
[
file_cnt
]
->
rootAST
)
{
error
(
"File empty"
,
found_file
,
0
);
file_cnt
--
;
...
...
@@ -1412,16 +1397,9 @@ int wb_vrepwbl::load_files( const char *file_spec)
file
[
file_cnt
]
->
rootAST
->
setFile
(
file
[
file_cnt
]);
}
}
catch
(
exception
&
e
)
{
cout
<<
"exception: "
<<
e
.
what
()
<<
" "
<<
found_file
<<
" line: "
<<
file
[
file_cnt
]
->
lexer
->
getLine
()
<<
endl
;
error_cnt
++
;
return
LDH__WBLPARSE
;
}
catch
(
ANTLRException
&
e
)
{
cout
<<
"E Wbl parse error: "
<<
" "
<<
found_file
<<
" line: "
<<
file
[
file_cnt
]
->
lexer
->
getLine
()
<<
endl
;
cout
<<
"F Wbl terminated"
<<
endl
;
catch
(
wb_error_str
&
e
)
{
cout
<<
"Exception: "
<<
e
.
what
()
<<
" "
<<
found_file
<<
" line: "
<<
file
[
file_cnt
]
->
parser
->
get_line
()
<<
endl
;
error_cnt
++
;
return
LDH__WBLPARSE
;
}
...
...
@@ -1747,7 +1725,6 @@ bool wb_vrepwbl::renameObject(pwr_tStatus *sts, wb_orep *orep, wb_name &name)
wb_wblnode
*
n
=
((
wb_orepwbl
*
)
orep
)
->
wblNode
();
string
sname
(
name
.
object
());
n
->
setText
(
sname
);
n
->
setText
(
name
.
object
());
return
true
;
}
wb/lib/wb/src/wb_vrepwbl.h
View file @
555034cb
...
...
@@ -41,9 +41,7 @@
#include "co_depend.h"
#include "wb_vrep.h"
#include "antlr/AST.hpp"
#include "wb_wbllexer.hpp"
#include "wb_wblparser.hpp"
#include "wb_wbl_parser.h"
#include "wb_wblnode.h"
#include "wb_wblfile.h"
#include "wb_erep.h"
...
...
wb/lib/wb/src/wb_wbl_parser.cpp
0 → 100644
View file @
555034cb
This diff is collapsed.
Click to expand it.
wb/lib/wb/src/wb_wbl_parser.h
0 → 100644
View file @
555034cb
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2017 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
#ifndef wb_wbl_parser_h
#define wb_wbl_parser_h
#include <stdlib.h>
#include <string.h>
#include "wb_error.h"
typedef
enum
{
wbl_mState_InDocBlock
=
1
<<
0
,
wbl_mState_InVolume
=
1
<<
1
,
wbl_mState_InSObject
=
1
<<
2
,
wbl_mState_InObject
=
1
<<
3
,
wbl_mState_InBody
=
1
<<
4
,
wbl_mState_InBuffer
=
1
<<
5
}
wbl_mState
;
typedef
enum
{
wbl_eToken_DocBlock
,
wbl_eToken_Volume
,
wbl_eToken_SObject
,
wbl_eToken_Object
,
wbl_eToken_Body
,
wbl_eToken_Attr
,
wbl_eToken_Name
,
wbl_eToken_Value
,
wbl_eToken_Index
,
wbl_eToken_String
,
wbl_eToken_Char
,
wbl_eToken_Operator
,
wbl_eToken_Operator_eq
,
wbl_eToken_Operator_oreq
,
wbl_eToken_Date
,
wbl_eToken_Buffer
}
wbl_eToken
;
class
wbl_ast_node
{
public:
wbl_ast_node
()
:
size
(
0
),
line_number
(
0
),
fws
(
0
),
fch
(
0
),
lch
(
0
),
fth
(
0
),
text
(
0
)
{}
~
wbl_ast_node
()
{
if
(
text
)
free
(
text
);
wbl_ast_node
*
next
;
for
(
wbl_ast_node
*
n
=
fch
;
n
;)
{
next
=
n
->
fws
;
delete
n
;
n
=
next
;
}
}
void
setType
(
int
type
)
{
token
=
type
;}
unsigned
int
getType
()
{
return
token
;}
char
*
getText
()
{
return
text
;}
void
setText
(
char
*
t
)
{
free
(
text
);
text
=
(
char
*
)
malloc
(
strlen
(
t
)
+
1
);
strcpy
(
text
,
t
);
}
//wbl_ast_node *getFirstChild() { return fch;}
//wbl_ast_node *getNextSibling() { return fws;}
int
token
;
int
size
;
unsigned
int
line_number
;
wbl_ast_node
*
fws
;
wbl_ast_node
*
fch
;
wbl_ast_node
*
lch
;
wbl_ast_node
*
fth
;
char
*
text
;
};
class
wb_wbl_parser
{
public:
wb_wbl_parser
();
~
wb_wbl_parser
();
void
parse
(
const
char
*
filename
);
void
print
();
void
print_node
(
wbl_ast_node
*
n
,
int
level
);
void
print_error
(
wb_error_str
&
e
);
wbl_ast_node
*
new_ast_node
(
wbl_eToken
token
,
char
*
text
,
unsigned
int
len
,
unsigned
int
line
,
int
allocated
);
int
next_token
(
ifstream
&
is
,
char
*
line
,
const
char
*
start_delim
,
const
char
*
end_delim
,
wbl_eToken
type
,
char
**
start
,
unsigned
int
*
len
,
int
*
allocated
);
int
read_docblock
(
ifstream
&
is
,
char
*
line
,
char
**
start
,
unsigned
int
*
len
);
void
ast_node_insert_lch
(
wbl_ast_node
*
fth
,
wbl_ast_node
*
n
);
wbl_ast_node
*
get_root_ast
()
{
return
m_tree
;}
unsigned
int
get_line
()
{
return
m_line_cnt
;}
void
print_line
();
int
check_operator
(
wbl_ast_node
*
n
);
private:
pwr_tFileName
m_fname
;
unsigned
int
m_line_cnt
;
unsigned
int
m_state
;
wbl_ast_node
*
m_tree
;
wbl_ast_node
*
m_current
;
int
m_object_level
;
int
m_buffer_level
;
};
#endif
wb/lib/wb/src/wb_wblfile.h
View file @
555034cb
...
...
@@ -43,14 +43,12 @@
// #include "wb_wbllexer.hpp"
// #include "wb_wblparser.hpp"
class
wb_wblparser
;
class
wb_wbllexer
;
class
wb_wbl_parser
;
class
wb_wblnode
;
class
wb_wblfile
{
public:
wb_wbllexer
*
lexer
;
wb_wblparser
*
parser
;
wb_wbl_parser
*
parser
;
wb_wblnode
*
rootAST
;
char
file_name
[
200
];
pwr_tTime
time
;
...
...
wb/lib/wb/src/wb_wblnode.cpp
View file @
555034cb
This diff is collapsed.
Click to expand it.
wb/lib/wb/src/wb_wblnode.h
View file @
555034cb
...
...
@@ -38,16 +38,12 @@
#define wb_wblnode_h
#include <iostream>
#include "antlr/CommonAST.hpp"
#include "antlr/ASTFactory.hpp"
#include "pwr.h"
#include "wb_name.h"
#include "wb_wbl_parser.h"
#include "wb_wblfile.h"
ANTLR_USING_NAMESPACE
(
std
)
ANTLR_USING_NAMESPACE
(
antlr
)
class
wb_wblnode
;
class
wb_vrepwbl
;
class
wb_vrep
;
...
...
@@ -70,7 +66,7 @@ typedef enum {
wbl_eNodeType_Code
}
wbl_eNodeType
;
typedef
antlr
::
ASTRefCount
<
wb_wblnode
>
ref_wblnode
;
typedef
wb_wblnode
*
ref_wblnode
;
typedef
struct
{
const
char
*
sym
;
...
...
@@ -142,6 +138,7 @@ class wbl_object {
if
(
rbody_size
)
free
(
rbody
);
if
(
dbody_size
)
free
(
dbody
);
}
size_t
rbody_size
;
size_t
dbody_size
;
void
*
rbody
;
...
...
@@ -169,22 +166,15 @@ class wbl_object {
};
class
wb_wblnode
:
public
CommonAST
{
class
wb_wblnode
:
public
wbl_ast_node
{
friend
class
wb_vrepwbl
;
public:
wb_wblnode
()
:
node_type
(
wbl_eNodeType_No
),
line_number
(
0
),
file
(
0
),
o
(
0
)
{
}
wb_wblnode
(
antlr
::
RefToken
t
)
:
node_type
(
wbl_eNodeType_No
),
line_number
(
0
),
file
(
0
),
o
(
0
)
file
(
0
),
o
(
0
)
{
CommonAST
::
setType
(
t
->
getType
());
CommonAST
::
setText
(
t
->
getText
());
}
~
wb_wblnode
()
{
...
...
@@ -192,69 +182,33 @@ public:
delete
o
;
}
void
initialize
(
int
t
,
const
std
::
string
&
txt
)
{
CommonAST
::
setType
(
t
);
CommonAST
::
setText
(
txt
);
}
void
initialize
(
ref_wblnode
t
)
{
CommonAST
::
setType
(
t
->
getType
());
CommonAST
::
setText
(
t
->
getText
());
}
void
initialize
(
RefAST
t
)
{
CommonAST
::
initialize
(
t
);
}
void
initialize
(
antlr
::
RefToken
t
);
void
setText
(
const
std
::
string
&
txt
)
{
CommonAST
::
setText
(
txt
);
}
void
setType
(
int
type
)
{
CommonAST
::
setType
(
type
);
}
void
addChild
(
ref_wblnode
c
)
{
BaseAST
::
addChild
(
RefAST
(
c
));
}
static
antlr
::
RefAST
factory
(
void
)
{
antlr
::
RefAST
ret
=
RefAST
(
new
wb_wblnode
);
return
ret
;
}
ref_wblnode
getFirstChild
()
{
return
ref_wblnode
(
BaseAST
::
getFirstChild
());
}
ref_wblnode
getNextSibling
()
{
return
ref_wblnode
(
BaseAST
::
getNextSibling
());
}
// Heterogeneous part
void
info
(
int
level
)
{
for
(
int
i
=
0
;
i
<
level
;
i
++
)
cout
<<
" "
;
cout
<<
getType
()
<<
" "
<<
getText
()
<<
endl
;
ref_wblnode
t
=
getFirstChild
();
wb_wblnode
*
t
=
(
wb_wblnode
*
)
getFirstChild
();
if
(
t
)
t
->
info
(
level
+
1
);
t
=
getNextSibling
();
t
=
(
wb_wblnode
*
)
getNextSibling
();
if
(
t
)
t
->
info
(
level
);
}
wb_wblnode
*
getFirstChild
()
{
return
(
wb_wblnode
*
)
fch
;}
wb_wblnode
*
getNextSibling
()
{
return
(
wb_wblnode
*
)
fws
;}
void
setNextSibling
(
wb_wblnode
*
n
)
{
n
->
fws
=
fws
;
fws
=
n
;
if
(
fth
->
lch
==
this
)
fth
->
lch
=
n
;
}
void
setFirstChild
(
wb_wblnode
*
c
)
{
if
(
fch
)
c
->
fws
=
fch
;
else
lch
=
c
;
fch
=
c
;
}
bool
isType
()
{
return
(
node_type
==
wbl_eNodeType_Type
);}
bool
isTypeDef
()
{
return
(
node_type
==
wbl_eNodeType_TypeDef
);}
bool
isClassDef
()
{
return
(
node_type
==
wbl_eNodeType_ClassDef
);}
...
...
@@ -308,12 +262,11 @@ public:
static
int
lookup
(
int
*
type
,
const
char
*
keyword
,
wbl_sSym
*
table
);
static
int
convconst
(
int
*
val
,
char
*
str
);
const
char
*
name
()
{
return
getText
()
.
c_str
()
;}
const
char
*
name
()
{
return
getText
();}
bool
docBlock
(
char
**
block
,
int
*
size
)
const
;
wbl_eNodeType
node_type
;
wb_vrepwbl
*
m_vrep
;
int
line_number
;
wb_wblfile
*
file
;
wbl_object
*
o
;
...
...
wb/lib/wb/src/wb_wblparser.cpp
deleted
100644 → 0
View file @
2e705e5e
This diff is collapsed.
Click to expand it.
wb/lib/wb/src/wb_wblparser.g
deleted
100644 → 0
View file @
2e705e5e
/*
* Make sure to run antlr.Tool on the lexer.g file first!
*/
header {
#include "wb_wblnode.h"
}
header "post_include_hpp" {
extern int wblparser_error_cnt;
# This_declarations_should_be_moved_inside_parser_class_in_wb_wblparser_hpp_!!
void reportError(const RecognitionException& ex);
}
header "post_include_cpp" {
#include "co_msgwindow.h"
int wblparser_error_cnt = 0;
void wb_wblparser::reportError(const RecognitionException& ex)
{
MsgWindow::message( 'E', ex.toString().c_str());
wblparser_error_cnt++;
ANTLR_USE_NAMESPACE(std)cerr << ex.toString().c_str() << ANTLR_USE_NAMESPACE(std)endl;
}
}
options {
mangleLiteralPrefix = "t_";
language="Cpp";
}
class wb_wblparser extends Parser;
options {
importVocab=wb_wblvocab; // use vocab generated by lexer
buildAST=true;
ASTLabelType="ref_wblnode";
}
unit
: (volume | sobject | object)+
;
volume
: VOLUME^ cid OID (body)* ((DOCBLOCK)? object)* ENDVOLUME
;
sobject
: SOBJECT^ ((DOCBLOCK)? object)* ENDSOBJECT
;
object
: OBJECT^ cid (oix)? (ASC_TIME)? (body)* ((DOCBLOCK)? object)* ENDOBJECT
;
body
: BODY^ (ASC_TIME)? (attribute)* ENDBODY
;
attribute
: ATTRIBUTE^ (EQ | OREQ) value
| BUFFER^ (INDEX)? (attribute)* ENDBUFFER
;
cid
: VALUE
| STRING_LITERAL
;
oix
: VALUE
| INT
;
value
: VALUE
| STRING_LITERAL
| NUM_FLOAT
| INT
;
oname
: VALUE
;
wb/lib/wb/src/wb_wblparser.hpp
deleted
100644 → 0
View file @
2e705e5e
#ifndef INC_wb_wblparser_hpp_
#define INC_wb_wblparser_hpp_
#include <antlr/config.hpp>
/* $ANTLR 2.7.6 (20060211): "wb_wblparser.g" -> "wb_wblparser.hpp"$ */
#include <antlr/TokenStream.hpp>
#include <antlr/TokenBuffer.hpp>
#include "wb_wblparserTokenTypes.hpp"
#include <antlr/LLkParser.hpp>
#line 8 "wb_wblparser.g"
extern
int
wblparser_error_cnt
;
#line 19 "wb_wblparser.hpp"
#line 4 "wb_wblparser.g"
#include "wb_wblnode.h"
#line 24 "wb_wblparser.hpp"
class
CUSTOM_API
wb_wblparser
:
public
ANTLR_USE_NAMESPACE
(
antlr
)
LLkParser
,
public
wb_wblparserTokenTypes
{
void
reportError
(
const
RecognitionException
&
ex
);
#line 1 "wb_wblparser.g"
#line 28 "wb_wblparser.hpp"
public
:
void
initializeASTFactory
(
ANTLR_USE_NAMESPACE
(
antlr
)
ASTFactory
&
factory
);
protected
:
wb_wblparser
(
ANTLR_USE_NAMESPACE
(
antlr
)
TokenBuffer
&
tokenBuf
,
int
k
);
public
:
wb_wblparser
(
ANTLR_USE_NAMESPACE
(
antlr
)
TokenBuffer
&
tokenBuf
);
protected
:
wb_wblparser
(
ANTLR_USE_NAMESPACE
(
antlr
)
TokenStream
&
lexer
,
int
k
);
public
:
wb_wblparser
(
ANTLR_USE_NAMESPACE
(
antlr
)
TokenStream
&
lexer
);
wb_wblparser
(
const
ANTLR_USE_NAMESPACE
(
antlr
)
ParserSharedInputState
&
state
);
int
getNumTokens
()
const
{
return
wb_wblparser
::
NUM_TOKENS
;
}
const
char
*
getTokenName
(
int
type
)
const
{
if
(
type
>
getNumTokens
()
)
return
0
;
return
wb_wblparser
::
tokenNames
[
type
];
}
const
char
*
const
*
getTokenNames
()
const
{
return
wb_wblparser
::
tokenNames
;
}
public
:
void
unit
();
public
:
void
volume
();
public
:
void
sobject
();
public
:
void
object
();
public
:
void
cid
();
public
:
void
body
();
public
:
void
oix
();
public
:
void
attribute
();
public
:
void
value
();
public
:
void
oname
();
public
:
ANTLR_USE_NAMESPACE
(
antlr
)
RefAST
getAST
()
{
return
ANTLR_USE_NAMESPACE
(
antlr
)
RefAST
(
returnAST
);
}
protected
:
ref_wblnode
returnAST
;
private
:
static
const
char
*
tokenNames
[];
#ifndef NO_STATIC_CONSTS
static
const
int
NUM_TOKENS
=
36
;
#else
enum
{
NUM_TOKENS
=
36
};
#endif
static
const
unsigned
long
_tokenSet_0_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_0
;
static
const
unsigned
long
_tokenSet_1_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_1
;
static
const
unsigned
long
_tokenSet_2_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_2
;
static
const
unsigned
long
_tokenSet_3_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_3
;
static
const
unsigned
long
_tokenSet_4_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_4
;
static
const
unsigned
long
_tokenSet_5_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_5
;
static
const
unsigned
long
_tokenSet_6_data_
[];
static
const
ANTLR_USE_NAMESPACE
(
antlr
)
BitSet
_tokenSet_6
;
}
;
#endif
/*INC_wb_wblparser_hpp_*/
wb/lib/wb/src/wb_wblparserTokenTypes.hpp
deleted
100644 → 0
View file @
2e705e5e
#ifndef INC_wb_wblparserTokenTypes_hpp_
#define INC_wb_wblparserTokenTypes_hpp_
/* $ANTLR 2.7.6 (20060211): "wb_wblparser.g" -> "wb_wblparserTokenTypes.hpp"$ */
#ifndef CUSTOM_API
# define CUSTOM_API
#endif
#ifdef __cplusplus
struct
CUSTOM_API
wb_wblparserTokenTypes
{
#endif
enum
{
EOF_
=
1
,
OBJECT
=
4
,
ENDOBJECT
=
5
,
VOLUME
=
6
,
ENDVOLUME
=
7
,
SOBJECT
=
8
,
ENDSOBJECT
=
9
,
BODY
=
10
,
ENDBODY
=
11
,
ATTRIBUTE
=
12
,
BUFFER
=
13
,
ENDBUFFER
=
14
,
DOBJECT
=
15
,
ENDDOBJECT
=
16
,
DBUFFER
=
17
,
ENDDBUFFER
=
18
,
DATTRIBUTE
=
19
,
NUM_FLOAT
=
20
,
INT
=
21
,
OID
=
22
,
DOCBLOCK
=
23
,
ASC_TIME
=
24
,
EQ
=
25
,
OREQ
=
26
,
WS
=
27
,
COMMENT
=
28
,
INDEX
=
29
,
VALUE
=
30
,
CHAR_LITERAL
=
31
,
STRING_LITERAL
=
32
,
DIGITS
=
33
,
ESC
=
34
,
SWEC
=
35
,
NULL_TREE_LOOKAHEAD
=
3
};
#ifdef __cplusplus
};
#endif
#endif
/*INC_wb_wblparserTokenTypes_hpp_*/
wb/lib/wb/src/wb_wblparserTokenTypes.txt
deleted
100644 → 0
View file @
2e705e5e
// $ANTLR 2.7.6 (20060211): wb_wblparser.g -> wb_wblparserTokenTypes.txt$
wb_wblparser // output token vocab name
OBJECT=4
ENDOBJECT=5
VOLUME=6
ENDVOLUME=7
SOBJECT=8
ENDSOBJECT=9
BODY=10
ENDBODY=11
ATTRIBUTE=12
BUFFER=13
ENDBUFFER=14
DOBJECT=15
ENDDOBJECT=16
DBUFFER=17
ENDDBUFFER=18
DATTRIBUTE=19
NUM_FLOAT=20
INT=21
OID=22
DOCBLOCK=23
ASC_TIME=24
EQ=25
OREQ=26
WS=27
COMMENT=28
INDEX("an index")=29
VALUE("an identifer")=30
CHAR_LITERAL=31
STRING_LITERAL=32
DIGITS=33
ESC=34
SWEC=35
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment