def _has_valid_syntax(row):
    """
    Check whether a given row in the CSV file has the required syntax, i.e.
    - lemma is an existing string object
    - example sentence is a string and contains at least one pair of lemma markers in the right order
    - score is one of the following strings: '0', '1', '2', '3', '4'
    :param row: a dictionary containing all values in a CSV row
    """
    lemma = row['Lemma']
    sentence = row['Example']
    score = row['Score']

    # check lemma
    if lemma is None or type(lemma) != str:
        return False

    # check sentence
    if sentence is None or type(sentence) != str or not sentence.__contains__('_&') or not sentence.__contains__('&_'):
        return False
    i = sentence.index('_&')
    j = sentence.index('&_')
    if i >= j:
        return False

    # check score
    valid_scores = ['0', '1', '2', '3', '4']
    if score is None or type(score) != str or score not in valid_scores:
        return False

    return True