def lastres(ctx, institution, requirement_id): """ lastres : LASTRES NUMBER (OF NUMBER)? class_or_credit course_list? tag? display* label?; """ return_dict = {'tag': 'lastres', 'class_or_credit': class_or_credit(ctx.class_or_credit())} numbers = ctx.NUMBER() return_dict['min_number'] = numbers.pop().getText().strip() if len(numbers) > 0: return_dict['of_number'] = numbers.pop().getText().strip() assert len(numbers) == 0 if ctx.course_list(): return_dict['courses'] = build_course_list(ctx.course_list(), institution, requirement_id) if ctx.display(): display_text = '' for item in ctx.display(): display_text += item.string().getText().strip(' "') + ' ' return_dict['display'] = display_text.strip() if ctx.label(): return_dict['label'] = ctx.label().string().getText().strip(' "') return return_dict
def maxpassfail(ctx, institution, requirement_id): """ maxpassfail : MAXPASSFAIL NUMBER class_or_credit tag?; """ return_dict = {'tag': 'max_pass-fail', 'max_passfail_allowed': ctx.NUMBER().getText(), 'class_or_credit': class_or_credit(ctx.class_or_credit())} return return_dict
def minperdisc(ctx, institution, requirement_id): """ minperdisc : MINPERDISC NUMBER class_or_credit LP SYMBOL (list_or SYMBOL)* RP tag? display*; """ return_dict = {'tag': 'min_per-disc', 'min_number': ctx.NUMBER().getText(), 'class_or_credit': class_or_credit(ctx.class_or_credit())} return_dict['discipline'] = [discp.getText().upper() for discp in ctx.SYMBOL()] return return_dict
def maxterm(ctx, institution, requirement_id): """ maxterm : MAXTERM NUMBER class_or_credit course_list tag?; """ return_dict = {'tag': 'max_term', 'max_number': ctx.NUMBER().getText(), 'class_or_credit': class_or_credit(ctx.class_or_credit())} return_dict['courses'] = build_course_list(ctx.course_list(), institution, requirement_id) return return_dict
def maxperdisc(ctx, institution, requirement_id): """ maxperdisc : MAXPERDISC NUMBER class_or_credit LP SYMBOL (list_or SYMBOL)* RP tag?; """ return_dict = {'tag': 'max_per-disc', 'max_allowed_per_discipline': ctx.NUMBER().getText(), 'class_or_credit': class_or_credit(ctx.class_or_credit())} return_dict['disciplines'] = [discp.getText().upper() for discp in ctx.SYMBOL()] return return_dict
def maxtransfer(ctx, institution, requirement_id): """ maxtransfer : MAXTRANSFER NUMBER class_or_credit (LP SYMBOL (list_or SYMBOL)* RP)? tag?; """ return_dict = {'tag': 'max_transfer', 'max_number': ctx.NUMBER().getText(), 'class_or_credit': class_or_credit(ctx.class_or_credit())} if ctx.SYMBOL(): symbol_contexts = ctx.SYMBOL() return_dict['transfer_types'] = [symbol.getText() for symbol in symbol_contexts] return return_dict
def share(ctx, institution, requirement_id): """ share : (SHARE | DONT_SHARE) (NUMBER class_or_credit)? expression? tag?; """ return_dict = {'tag': 'share'} if ctx.SHARE(): return_dict['share_type'] = 'allow sharing' else: return_dict['share_type'] = 'exclusive' if ctx.NUMBER(): return_dict['number'] = ctx.NUMBER().getText().strip() return_dict['class_or_credit'] = class_or_credit(ctx.class_or_credit()) if ctx.expression(): return_dict['expression'] = ctx.expression().getText() return return_dict
def under(ctx, institution, requirement_id): """ under : UNDER NUMBER class_or_credit course_list display* label; """ return_dict = {'tag': 'under', 'number': ctx.NUMBER().getText(), 'class_or_credit': class_or_credit(ctx.class_or_credit())} return_dict['courses'] = build_course_list(ctx.course_list(), institution, requirement_id) if ctx.display(): display_text = '' for item in ctx.display(): display_text += item.string().getText().strip(' "') + ' ' return_dict['display'] = display_text.strip() if ctx.label(): return_dict['label'] = ctx.label().string().getText().strip(' "') return return_dict