Home | History | Annotate | Download | only in script_api

Lines Matching refs:scanner

28 #include "Scanner.h"
141 bool isReturn, Scanner* scanner) {
165 scanner->error(lineNumber) << "Should have a name.\n";
171 scanner->error(lineNumber) << "Should have a name.\n";
188 scanner->error(lineNumber) << "Incorrect range " << testOption << "\n";
196 scanner->error(lineNumber) << "Incorrect testOption " << testOption << "\n";
203 scanner->error(lineNumber) << "Incorrect testOption " << testOption << "\n";
210 scanner->error(lineNumber) << "Unrecognized testOption " << testOption << "\n";
222 scanner->error(lineNumber) << "range(,) is only supported for floating point\n";
227 bool VersionInfo::scan(Scanner* scanner, unsigned int maxApiLevel) {
228 if (scanner->findOptionalTag("version:")) {
229 const string s = scanner->getValue();
237 scanner->error() << "Minimum version must >= 9\n";
243 scanner->error() << "Maximum version must >= 9\n";
247 if (scanner->findOptionalTag("size:")) {
248 sscanf(scanner->getValue().c_str(), "%i", &intSize);
275 void Definition::scanDocumentationTags(Scanner* scanner, bool firstOccurence,
277 if (scanner->findOptionalTag("hidden:")) {
278 scanner->checkNoValue();
281 if (scanner->findOptionalTag("deprecated:")) {
282 string value = scanner->getValue();
290 scanner->error() << "deprecated entries should have a level > 0\n";
294 if (scanner->findTag("summary:")) {
295 mSummary = scanner->getValue();
297 if (scanner->findTag("description:")) {
298 scanner->checkNoValue();
299 while (scanner->findOptionalTag("")) {
300 mDescription.push_back(scanner->getValue());
304 } else if (scanner->findOptionalTag("summary:")) {
305 scanner->error() << "Only the first specification should have a summary.\n";
340 void Function::addParameter(ParameterEntry* entry, Scanner* scanner) {
345 scanner->error(entry->lineNumber)
355 void Function::addReturn(ParameterEntry* entry, Scanner* scanner) {
360 scanner->error() << "ret: should be documented only for the first variant\n";
365 void ConstantSpecification::scanConstantSpecification(Scanner* scanner, SpecFile* specFile,
367 string name = scanner->getValue();
369 if (!info.scan(scanner, maxApiLevel)) {
371 scanner->skipUntilTag("end:");
383 if (scanner->findTag("value:")) {
384 spec->mValue = scanner->getValue();
386 if (scanner->findTag("type:")) {
387 spec->mType = scanner->getValue();
389 constant->scanDocumentationTags(scanner, created, specFile);
391 scanner->findTag("end:");
394 void TypeSpecification::scanTypeSpecification(Scanner* scanner, SpecFile* specFile,
396 string name = scanner->getValue();
398 if (!info.scan(scanner, maxApiLevel)) {
400 scanner->skipUntilTag("end:");
412 if (scanner->findOptionalTag("simple:")) {
414 spec->mSimpleType = scanner->getValue();
416 if (scanner->findOptionalTag("rs_object:")) {
419 if (scanner->findOptionalTag("struct:")) {
421 spec->mStructName = scanner->getValue();
422 while (scanner->findOptionalTag("field:")) {
423 string s = scanner->getValue();
425 scanner->parseDocumentation(&s, &comment);
430 if (scanner->findOptionalTag("enum:")) {
432 spec->mEnumName = scanner->getValue();
433 while (scanner->findOptionalTag("value:")) {
434 string s = scanner->getValue();
436 scanner->parseDocumentation(&s, &comment);
441 if (scanner->findOptionalTag("attrib:")) {
442 spec->mAttribute = scanner->getValue();
444 type->scanDocumentationTags(scanner, created, specFile);
446 scanner->findTag("end:");
499 void FunctionSpecification::createPermutations(Function* function, Scanner* scanner) {
521 auto p = new FunctionPermutation(function, this, replacementIndexes, scanner);
554 void FunctionSpecification::parseTest(Scanner* scanner) {
555 const string value = scanner->getValue();
564 scanner->error() << "Incorrect test: \"" << value << "\"\n";
570 scanner->error() << "Unrecognized test option: \"" << value << "\"\n";
585 Scanner *scanner) {
591 scanner->error() << "RST_i pattern not allowed here\n";
594 scanner->error() << "Found pattern \"" << kRSTypePatterns[i]
602 void FunctionSpecification::scanFunctionSpecification(Scanner* scanner, SpecFile* specFile,
605 const string& unexpandedName = scanner->getValue();
615 if (!info.scan(scanner, maxApiLevel)) {
617 scanner->skipUntilTag("end:");
632 if (scanner->findOptionalTag("internal:")) {
633 spec->mInternal = (scanner->getValue() == "true");
635 if (scanner->findOptionalTag("intrinsic:")) {
636 spec->mIntrinsic = (scanner->getValue() == "true");
638 if (scanner->findOptionalTag("attrib:")) {
639 spec->mAttribute = scanner->getValue();
641 if (scanner->findOptionalTag("w:")) {
643 if (scanner->getValue().find("1") != string::npos) {
646 if (scanner->getValue().find("2") != string::npos) {
649 if (scanner->getValue().find("3") != string::npos) {
652 if (scanner->getValue().find("4") != string::npos) {
660 while (scanner->findOptionalTag("t:")) {
661 spec->mReplaceables.push_back(convertToTypeVector(scanner->getValue()));
667 spec->checkRSTPatternValidity(unexpandedName, false, scanner);
669 if (scanner->findTag("ret:")) {
670 ParameterEntry* p = scanner->parseArgString(true);
671 function->addReturn(p, scanner);
675 spec->checkRSTPatternValidity(p->type, false, scanner);
677 while (scanner->findOptionalTag("arg:")) {
678 ParameterEntry* p = scanner->parseArgString(false);
679 function->addParameter(p, scanner);
683 spec->checkRSTPatternValidity(p->type, false, scanner);
684 spec->checkRSTPatternValidity(p->testOption, false, scanner);
687 function->scanDocumentationTags(scanner, created, specFile);
689 if (scanner->findOptionalTag("inline:")) {
690 scanner->checkNoValue();
691 while (scanner->findOptionalTag("")) {
692 spec->mInline.push_back(scanner->getValue());
695 spec->checkRSTPatternValidity(spec->mInline.back(), true, scanner);
698 if (scanner->findOptionalTag("test:")) {
699 spec->parseTest(scanner);
702 scanner->findTag("end:");
704 spec->createPermutations(function, scanner);
708 int replacementIndexes[MAX_REPLACEABLES], Scanner* scanner)
725 def->parseParameterDefinition(type, name, testOption, lineNumber, false, scanner);
733 scanner->error(lineNumber)
748 mReturn->parseParameterDefinition(retType, "", "", lineNumber, true, scanner);
811 Scanner scanner(mSpecFileName, specFile);
814 scanner.skipBlankEntries();
815 if (scanner.findTag("header:")) {
816 if (scanner.findTag("summary:")) {
817 mBriefDescription = scanner.getValue();
819 if (scanner.findTag("description:")) {
820 scanner.checkNoValue();
821 while (scanner.findOptionalTag("")) {
822 mFullDescription.push_back(scanner.getValue());
825 if (scanner.findOptionalTag("include:")) {
826 scanner.checkNoValue();
827 while (scanner.findOptionalTag("")) {
828 mVerbatimInclude.push_back(scanner.getValue());
831 scanner.findTag("end:");
835 scanner.skipBlankEntries();
836 if (scanner.atEnd()) {
839 const string tag = scanner.getNextTag();
841 FunctionSpecification::scanFunctionSpecification(&scanner, this, maxApiLevel);
843 TypeSpecification::scanTypeSpecification(&scanner, this, maxApiLevel);
845 ConstantSpecification::scanConstantSpecification(&scanner, this, maxApiLevel);
847 scanner.error() << "Expected function:, type:, or constant:. Found: " << tag << "\n";
853 return scanner.getErrorCount() == 0;