# Specialized parsers

parserYourModsHere.pl Modifications to the Parser change the way that student responses are interpreted. By convention files that modify the parser are named starting with "parser" -- e.g. parserYourModsHere.pl. test SpecializedContexts Describes another advanced method for customizing MathObjects by modifying the context.

Examples of modifications are give below.

A description of advanced techniques for customizing the parser are at Modifying Contexts (advanced).

### Specialized Parser Macro files

Here is a partial list of the parser modifying files.

Use loadMacros("parserAssignment.pl"); to make the parser modifications available for a WeBWorK question.

Check the POD documentation for more examples.

• parserAssignment.pl
• checks answers of the form $$y=3x+5$$ with the LHS of the equation required.
• follow the link above to see the additional statements that must be inserted in the question to use this file.
• parserAutoStrings.pl
• parserAutoStrings.pl - Force String() to accept any string as a potential answer.
  AutoStrings()
-- all strings are accepted
DefineStrings("string1", "string2")
DefineStrings(qw(string1 string2))
-- is a quick way to define "legitimate" strings.

     FormulaWithUnits("3x+1 ft")->cmp
FormulaWithUnits($a*$x+1,"ft")->cmp

   Context("ImplicitEquation");
$f = ImplicitEquation("x^2 = cos(y)");$f = ImplicitEquation("x^2 - 2y^2 = 5",limits=>[[-3,3],[-2,2]]);
$f = ImplicitEquation("x=1/y",tolerance=>.0001);  $P = ImplicitPlane(Point(1,0,2),Vector(-1,1,3)); #  -x+y+3z = 5
$P = ImplicitPlane([1,0,2],[-1,1,3]); # -x+y+3z = 5$P = ImplicitPlane([1,0,2],4);                   #  x+2z = 4
$P = ImplicitPlane("x+2y-z=5");   ANS(NumberWithUnits("3 ft")->cmp); ANS(NumberWithUnits("$a*$b ft")->cmp); ANS(NumberWithUnits($a*\$b,"ft")->cmp);

• parserParametricLine.pl
• Implements Formulas that represent parametric lines.
• parserPopUp.pl
• Pop-up menus compatible with Value objects.
• parserPrime.pl
• Defines  f'(x) so that students and authors can use the prime notation in defining equations.
• After loading file use perl command parser::Prime->Enable; to enable the feature.