User story #288
Updated by Ivan Herrero about 9 years ago
Implement a json and xml parser based on the SLK implementation.
h1. Source code files modified
* Source/Core/BareMetal/L3Streams/AdvancedErrorManagement.h
* Source/Core/BareMetal/L4Configuration/AnyTypeCreator.cpp
* Source/Core/BareMetal/L4Configuration/AnyTypeCreator.h
* Source/Core/BareMetal/L4Configuration/JsonParser.cpp
* Source/Core/BareMetal/L4Configuration/JsonParser.h
* Source/Core/BareMetal/L4Configuration/LexicalAnalyzer.cpp
* Source/Core/BareMetal/L4Configuration/LexicalAnalyzer.h
* Source/Core/BareMetal/L4Configuration/Parser.cpp
* Source/Core/BareMetal/L4Configuration/ParserI.cpp
* Source/Core/BareMetal/L4Configuration/ParserI.h
* Source/Core/BareMetal/L4Configuration/StandardParser.cpp
* Source/Core/BareMetal/L4Configuration/StandardParser.h
* Source/Core/BareMetal/L4Configuration/StringToInteger.cpp
* Source/Core/BareMetal/L4Configuration/XMLParser.cpp
* Source/Core/BareMetal/L4Configuration/XMLParser.h
* Source/Core/BareMetal/L4Configuration/ParserGrammar.h
h1. Source code files removed
* The files /Source/Core/BareMetal/L4Configuration/*.ll have been removed after archiving a copy of them on "MARTe2 (doc-git)" repository.
h1. Architecture & design review
N/A
h1. Code and documentation review
*Date of the review:* 18/12/2015
*Person who did the review:* Ivan Herrero and Andre' Neto (second revision)
*Result of review:* PASS (but see non-conformities to be discussed in the next sprint)
*List of non-conformities:*
* The ParserI and LexicalAnalyzer classes receive a stream by reference (StreamI&) on its constructor, but both store internally the address of the stream and use it as an explicit pointer, and accessing it on other functions. From the point of view of the user of the class, passing by reference a parameter in a function means that the object will be only accessed during the execution of the function (constructor in this case), but not during the lifetime of the instance of the class. It should be better declaring it as an explicit pointer on the constructor.
h1. Unit test review
*Date of the review:* 18/12/2015
*Person who did the review:* Ivan Herrero Molina
*Result of coverage tests review:* PASS
*Result of functional tests review:* PASS
*Result of review:* PASS
*List of non-conformities:* N/A
h1. Source code files modified
* Source/Core/BareMetal/L3Streams/AdvancedErrorManagement.h
* Source/Core/BareMetal/L4Configuration/AnyTypeCreator.cpp
* Source/Core/BareMetal/L4Configuration/AnyTypeCreator.h
* Source/Core/BareMetal/L4Configuration/JsonParser.cpp
* Source/Core/BareMetal/L4Configuration/JsonParser.h
* Source/Core/BareMetal/L4Configuration/LexicalAnalyzer.cpp
* Source/Core/BareMetal/L4Configuration/LexicalAnalyzer.h
* Source/Core/BareMetal/L4Configuration/Parser.cpp
* Source/Core/BareMetal/L4Configuration/ParserI.cpp
* Source/Core/BareMetal/L4Configuration/ParserI.h
* Source/Core/BareMetal/L4Configuration/StandardParser.cpp
* Source/Core/BareMetal/L4Configuration/StandardParser.h
* Source/Core/BareMetal/L4Configuration/StringToInteger.cpp
* Source/Core/BareMetal/L4Configuration/XMLParser.cpp
* Source/Core/BareMetal/L4Configuration/XMLParser.h
* Source/Core/BareMetal/L4Configuration/ParserGrammar.h
h1. Source code files removed
* The files /Source/Core/BareMetal/L4Configuration/*.ll have been removed after archiving a copy of them on "MARTe2 (doc-git)" repository.
h1. Architecture & design review
N/A
h1. Code and documentation review
*Date of the review:* 18/12/2015
*Person who did the review:* Ivan Herrero and Andre' Neto (second revision)
*Result of review:* PASS (but see non-conformities to be discussed in the next sprint)
*List of non-conformities:*
* The ParserI and LexicalAnalyzer classes receive a stream by reference (StreamI&) on its constructor, but both store internally the address of the stream and use it as an explicit pointer, and accessing it on other functions. From the point of view of the user of the class, passing by reference a parameter in a function means that the object will be only accessed during the execution of the function (constructor in this case), but not during the lifetime of the instance of the class. It should be better declaring it as an explicit pointer on the constructor.
h1. Unit test review
*Date of the review:* 18/12/2015
*Person who did the review:* Ivan Herrero Molina
*Result of coverage tests review:* PASS
*Result of functional tests review:* PASS
*Result of review:* PASS
*List of non-conformities:* N/A