TEBA: Release history
[News]
- TEBA Ver1.49.1 is released (2023/12/19)
- Fixed a bug of PDG including initialized declarators.
- TEBA Ver1.49 is released (2023/12/15)
- Support Program Dependency Graph, and added PDG.pm, ast2pdg.pl, and pdg2dot.pl.
- Bug fix and improved CFG.pm.
- TEBA Ver1.48 is released (2023/11/08)
- added node_map in AST.pm, which converts a node id to the node object.
- TEBA Ver1.47 is released (2023/10/14)
- CFG.pm supports a declartion in a for-loop.
- c_peval.pl and c_intp.pl can accept C source code directly.
- CparserProc.pm is added, which provide the same API of Cparser.pm and can be used with RewriteTokens2.pm.
- TEBA Ver1.46 is released (2023/08/07)
- Package CFG::ASTNODE has been cut out as an independent package AST::NODE in AST.pm.
- Bug fix of c_peval: fixed incorrect assignement process.
- Simpified the input process of c_peval.pl.
- Refined the tools and modules which use AST::NODE.
- TEBA Ver1.45 is released (2023/07/28)
- c_peval supports multi target nodes for starting the evaluation.
- Bug fix of c_peval: incorrect deletion of the entry in the variable tables.
- Refined CFG.pm and its document.
- TEBA Ver1.44 is released (2023/07/27)
- CFG visitor support a max loop count restriction.
- Bug fix of the syntax checker of RewriteTokens2.pm
- Bug fix of AST generation of TEBA2JSON.pm
- TEBA Ver1.43 is released (2023/07/27)
- Bug fix of CFG.pm: supports empty expressions in for-loop and initilizers of declarations.
- Improved the syntax checker of RewriteTokens2.pm
- TEBA Ver1.42.2 is released (2023/06/16)
- Improved error processes in RewrtiteTokens2.pm.
- TEBA Ver1.42.1 is released (2023/04/25)
- Bug fixed for RewrtiteTokens2.pm.
- TEBA Ver1.42 is released (2023/04/19)
- Improved CFG.pm more readable and rich.
- c_peval.pl and c_intp.pl have been refactored using the new CFG.pm.
- Improved performance of RewriteTokens2 a little bit.
- TEBA Ver1.41 is released (2023/01/05)
- Bug fix of c_peval.pl.
- c_peval.pl is changed to keep assignments in reduce mode.
- c_peval.pl supports to start evaluation from the top of code.
- c_peval.pl try to keep evaluation to the end of code.
- TEBA Ver1.40 is released (2022/12/27)
- Bug fix of CFG.pm and cfg2dot.pl.
- TEBA Ver1.39 is released (2022/12/25)
- Add the features of loop count and deep copy of CFG::VISITOR.
- Bug fix of graph shrink optimization of CFG.pm.
- TEBA Ver1.38 is released (2022/11/29)
- Bug fix of CFG.pm concering jump statements.
- Renew cfg2ast.pl, which is based on CFG.pm.
- TEBA Ver1.37.5 is released (2022/11/16)
- Bug fix of c_intp.pl and c_peval.pl.
- Correct spell miss of an attribute in CFG.pm.
- TEBA Ver1.37.4 is released (2022/11/08)
- Bug fixed for c_intp.pl and program_slicer.pl
- c_intp.pl and program_slicer.pl generate CFG from AST inside. No need to use ast2cfg.pl.
- TEBA Ver1.37.3 is released (2022/10/31)
- CFG.pm supports CFG generation from AST.
- added c_peval.pl, a simple partial evaluation sample program.
- TEBA Ver1.37.2 is released (2022/10/05)
- Fixed c_intp.pl to call printf correctly.
- TEBA Ver1.37.1 is released (2022/09/12)
- Fixed cfg2dot.pl to load the TEBA libraries as default.
- TEBA Ver1.37 is released (2022/08/30)
- Improved the specification of CFG of ast2cfg.pl.
- Improved CFG.pm for implementing a C interpreter.
- program_slicer.pl has been added, which is an application example of CFG.pm.
- A C interpreter program, c_intp.pl, has been added, which is an application example of CFG.pm.
- TEBA Ver1.36 is released (2022/08/26)
- Bug fix of ast2cfg.pl.
- A new module CFG.pm has been added. It supports to build a CFG memory image and provide visitor class running on CFG.
- TEBA Ver1.35 is released (2022/08/22)
- ast2cfg.pl supports all kinds of statement, including switch and goto, and expressions for generating CFG(control flow graph).
- TEBA Ver1.34 is released (2022/07/19)
- TEBA Ver1.33.1 is released (2022/07/12)
- TEBA Ver1.33 is released (2022/06/17)
- Bug fixed and changed the options of RewriteTokens2.
- TEBA Ver1.32 is released (2022/04/15)
- Reimplemented RewriteTokens2.pm for improving rule description.
- TEBA Ver1.31 is released (2021/12/6)
- A bug fix of TEBA2JSON.pm, whose optimization for fuction does not work correctly for attribute before function name.
- TEBA Ver1.3 is released (2021/11/27)
- Add a new feature for teba2json.pl to produce a redeuced AST.
- TEBA Ver1.22 is released (2021/06/29)
- A bug fix of RewriteTokens2. It didn't treat token patterns including selection operators '|'.
- TEBA Ver1.21 is released (2021/04/19)
- A new version of RewriteToken module, named RewriteTokens2.pm, is available.
- TEBA Ver1.11 is released (2020/10/14)
- The robustness of SymboTable.pm has been improved.
- 'defined' is recoginized as an operator only in conditions of #if and #elsif.
- TEBA Ver1.10 is released (2020/09/17)
- AST(JSON format) includes a symbol table and type information of
each expression node.
- Improved the parsing rules for typedef declarations.
- Add PHP parser, phparse.pl.
- TEBA Ver1.09 is released (2019/06/24)
- Add -j option to preg.pl, which insert the matched token sequences of
pattern variables in JSON format.
- Replace the interpreter paths of the commands with "/usr/bin/env perl".
- Support the regular expression format rules of the latest perl.
- TEBA Ver.1.08 is released (2019/1/17)
- cparse.pl has an option for output in JSON format AST.
- Add new module to convert TEBA to JSON and soure text.
- Add special tag feature, '#@\w+', for program analysis tools.
A special tag is treated as a space in TEBA format and an object in JSON AST.
- TEBA Ver.1.07 is released (2017/12/05)
- Bug fix for teba2json.pl.
- TEBA Ver.1.06 is released (2017/11/08)
- Added a converter ast2dot.pl for conveting JSON-based abstract syntax tree into GraphViz format.
- Added an experimental converter ast2cfg.pl for generating control flow graphes from JSON-based abstract syntax tree.
- Support control statements which have illegal semicolons in the conditions.
- Minor bug fix.
- TEBA Ver.1.05 is released (2017/11/01)
- Added a converter teba2json.pl for generating JSON-based abstract syntax tree.
- Support a for statement which has illegal number of conditions.
- TEBA Ver.1.04.3 is released (2016/3/20)
- TEBA Ver.1.04.2 is released (2014/12/04)
- Bug fixed for rewrite.pl, in which an experimental function is enabled .
- Support variable arguments in macro definitions and calls.
- TEBA Ver.1.04.1 is released (2014/09/05)
- Bug fixed for the parser and the program transformation tool.
- TEBA Ver.1.04 is released (2014/07/2)
- Improved the performance.
- Add -c option to preg.pl, which search in the regions the tool itself outputs.
- Bug fixed for -p option of cparse.pl.
- TEBA Ver.1.03 is released (2014/06/18)
- Improved the performance.
- Add -p option to cparse.pl, which adds virtual tokens 'PRE_BR'
in directives to identify structures of branches of preprocessor
directives.
- Add -u option to preg.pl, which removes tokens /_[RM][BE]/
before searching. This optoin is useful for conneting preg.pl
by pipes.
- TEBA Ver.1.02 is released (2014/05/05)
- Improved the performance and the accuracy.
- Added a pattern search tool: preg.pl
- Added three program transformation tools:
- an alignment tool of branch directives, move_ifdef.pl,
- a reverse macro expansion tool, rev_macro.pl, and
- a forward macro expansion tool, ext_macro.pl
- Added demonstrations and samples for new tools.
- TEBA Ver.1.01 is released (2013/10/02)
- Improved the performance of IdUnify.pm.
- Added a code validity check function in CParse.pm.
- Refine some comments in files.
- Bug fix in rules.
- Add ProgrTrans.pm for a module of program transformation functions.
- TEBA Ver.1.0 is released (2013/08/29)
- The parser parses in expression level.
- Type names of tokens are changed to short ones for optimization.
- Support groups and or operator for program patterns and token sequence patterns.
- Support anonymous pattern variables.
- TEBA Ver.0.9.4 is released (2013/07/15)
- Bugs are fixed in rewrite.pl.
- TEBA Ver.0.9.3 is released (2013/06/23)
- Bug fixed.
- rewrite.pl reads options in pattern files. The notation of options are % directive
matching /^%\s*s/ for "-s", and /^%\s*r/ for "-r"
- Sample program pattern files are added for demonstration.
- TEBA Ver.0.9 is released (2013/6/6)
- The coarse-grained parser, CoarseGrainedParser.pm,
has been replaced with a rewriting-based parsing version,
instead of recursive descent parsing.
The new CoarseGrainedParser parses inside of macro definitions.
- A new option '-s' is added to the pattern-based transformation tool, rewrite.pl.
The new option preserve white spaces and comments in transformation.
Because no deletion is supported, the outputs may contain extra white spaces.
- TEBA Ver.0.7.1 released (2012/11/08)
- Bug fixed in token-patterns.def.
- Separated rules of identifying members in struct/union into HeuristicFilter.pm for performance improvement.
- Add a new rule in prep.rules for analyzing preprocessor condition directives, #if. But not supported #elif.
- TEBA Ver.0.7 released (2012/11/01)
- RewriteTokens supports the include directive, @"filename".
- Refined heuristic rule files, syntax*.rules.
- Merged PrograPattern package. The tool "bin/rewrite.pl" is a program pattern based transformation filter.
- TEBA Ver.0.6.4 released. (2012/06/05)
- New features added:
- Back-reference of pattern variable in the before pattern of ProgPattern
- Token variable specified a regular expression in RewriteTokens
- Special Token definition can include another token definition
- LCS.pm: A sample module of LCS.
- bug fixed for union and enum.
- TEBA Ver.0.6.3 released. (2012/05/16)
- Bug fixed of parsing functions of declaration including a struct.
- Improved default-pt.rules for rewrite.pl.
- Add IdUnify.pm and id_unify.pl for unifying IDs between two token sequences.
- TEBA Ver.0.6.2 released. (2011/12/08)
- Improve the quality of CoarseGrainedParser.pm: support irregular expressions and function definitions.
- TEBA Ver.0.6.1 released. (2011/10/20)
- Bug fix of RewriteTokens.pm. RewriteTokens had not escape slashes
in token rewrite rules and had failed at the eval of rules.
- TEBA Ver.0.6 released. (2011/10/18)
- Skip right parentheses at the begining of statements.
- cparse.pl automatically search library path.
The envirionment variable PERLLIB is not needed.
- TEBA Ver.0.5 released. (2011/08/09)
- Update for supporting new rewrite.pl.
- Changes in rewrite.pl:
- Fixed a bug of recursive transfromation.
- Type qualifier '*' is added. For example, a variable ${stmt:STMT*} means a sequence of STMT. BEGIN_STMT and END_STMT surrounding the variable are removed.
- Special Type DECL is added. For example, a variable ${decl:DECL} means a declaration. This variable is to be surrounded by BEGIN_DECL and END_DECL, instead of BEGIN_STMT and END_STMT.
- TEBA Ver.0.4 released. (2011/04/12)
- The correctness of parser is improved.
- A Token type, SIZEOF, is added for 'sizeof' operator.
- Types of reserved words of control statement are changed.
- Token.pm is removed.
- TEBA Ver.0.3 released. (2010/10/22)
- Newline characters in source files are converted to '\n', instead of '\r'.
- Support of escaped characters are improved. New method, Tokenizer::unescape(), was added.
- New virtual token BEGIN_LABEL and END_LABEL were added to analyze successive label occurences.
YOSHIDA Atsushi, atsu@nanzan-u.ac.jp